乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      爬取抖音數(shù)據(jù)實(shí)踐方案《基礎(chǔ)版》

       印度阿三17 2019-09-19

      背景:

      現(xiàn)在移動(dòng)短視頻大火,很多的內(nèi)容消費(fèi)都在手機(jī)的客戶端上進(jìn)行。為了監(jiān)控類似抖音短視頻平臺上的風(fēng)險(xiǎn)數(shù)據(jù)(主要是視頻標(biāo)題、視頻內(nèi)容、評論區(qū)),采用爬蟲技術(shù)手段來實(shí)時(shí)爬取內(nèi)容。

      ?

      技術(shù)方案:

      python(腳本程序) mitmproxy(代理服務(wù)器) appium(自動(dòng)化工具)

      ?

      原理:

      采用抓包的方式,通過設(shè)置代理服務(wù)器、以及設(shè)置https證書,讓所有的http、https的請求和響應(yīng)全部通過這個(gè)代理服務(wù)器來轉(zhuǎn)發(fā),然后利用腳本對轉(zhuǎn)發(fā)的數(shù)據(jù)進(jìn)行處理。

      ?

      和fiddler、Charles等抓包工具對比,mitmproxy最大的優(yōu)勢是它提供了python腳本的對接入口,可以利用python來處理爬取到的數(shù)據(jù)。例如:下載視頻文件,存儲關(guān)鍵信息到我們自己的DB上等。

      ?

      ?

      實(shí)現(xiàn)爬取抖音視頻及標(biāo)題數(shù)據(jù)

      ?

      第一步:安裝環(huán)境及工具

      ?

      安裝python環(huán)境

      www.python.org/downloads/

      ?

      安裝mitmproxy代理工具

      mitmproxy.org/

      ?

      安裝appium自動(dòng)化工具(目前沒用到)

      ?

      第二步:設(shè)置代理相關(guān)

      (為支持https請求需安裝證書)

      ?

      1.安裝完mitmproxy后,會在如下目錄生成證書文件。

      2.安裝mitmproxy的pc證書

      雙擊mitmproxy-ca.p12證書進(jìn)行安裝,彈出如下窗口:

      點(diǎn)擊下一步,如下:

      點(diǎn)擊下一步,如下:

      點(diǎn)擊下一步,如下:(注意這里密碼默認(rèn)為空)

      點(diǎn)擊下一步,如下。再點(diǎn)擊完成即可。

      ?

      3.安裝mitmproxy的手機(jī)客戶端證書

      ?

      把上圖中mitmproxy-ca-cert.pem文件導(dǎo)入手機(jī)隨便一個(gè)位置,接著找到手機(jī)的設(shè)置入口,根據(jù)各自手機(jī)的情況,反正就是找到并安裝上這個(gè)證書即可。(這里不細(xì)述,蘋果手機(jī)需信任之類的操作)

      ?

      4.設(shè)置手機(jī)代理,把手機(jī)請求指向本地電腦的mitmproxy代理。

      cmd-->ipconfig-->IPv4地址

      設(shè)置手機(jī)

      ?

      第三步:啟動(dòng)代理,爬取數(shù)據(jù)

      ?

      編寫python爬取抖音內(nèi)容腳本douyin.py,存放在site-packages目錄下:

      ?

      ?

      ?

      #douyin.py
      import json,os
      import requests
      def response(flow):
          #分析數(shù)據(jù)發(fā)現(xiàn)這是抖音舊的視頻請求地址(估計(jì)是防爬取定時(shí)換的吧)
          #url='https://api./aweme/v1/aweme/post/'
          url='https://api-hl./aweme/v1/aweme/post/'
          #篩選出以上面url為開頭的url
          if flow.request.url.startswith(url):
              text=flow.response.text
              #將已編碼的json字符串解碼為python對象
              data=json.loads(text)
              #print(data)
              #在charles中剛剛看到每一個(gè)視頻的所有信息
              #都在aweme_list中
              video_url=data['aweme_list']
              path='D:/crawler_data/douyin'
      		#path='D:\crawler_data\douyin'
              if not os.path.exists(path):
                  os.mkdir(path)
              for each in video_url:
                  #視頻描述
                  desc=each['desc']
                  url=each['video']['play_addr']['url_list'][0]
                  # print(desc,url)
                  filename=path '/' desc '.mp4'
                  # print(filename)
                  req=requests.get(url=url,verify=False)
                  with open(filename,'ab') as f:
                      f.write(req.content)
                      f.flush()
                      print(filename,'下載完畢')復(fù)制代碼

      ?

      以加載python的方式啟動(dòng)mitmproxy代理:

      (需先cd到site-packages目錄,然后執(zhí)行如下命令)

      mitmdump -s douyin.py復(fù)制代碼

      ?

      需要注意:

      1)douyin.py存放在python的安裝目錄下,不然會報(bào)requests模塊找不到。

      第四步:手工滑動(dòng)抖音,實(shí)時(shí)查看抖音視頻數(shù)據(jù)。

      (后面可借助appium自動(dòng)化工具模擬滑動(dòng)動(dòng)作)

      ?

      根據(jù)抓包,分析抖音數(shù)據(jù)結(jié)構(gòu):

      mitmdump上實(shí)時(shí)打印的抓包數(shù)據(jù):

      實(shí)時(shí)下載的抖音視頻:

      ?

      展望及不足:

      1)python腳本比較簡陋,現(xiàn)在還不支持?jǐn)?shù)據(jù)過濾及入庫。

      2)只是簡單的技術(shù)驗(yàn)證,如上面提到的,抖音的視頻地址可能會變,到時(shí)就需要維護(hù)成本。

      3)如需落地監(jiān)控,需訓(xùn)練視頻內(nèi)容、郵件通知、視頻查閱(可通過定時(shí)上傳百度云實(shí)現(xiàn)視頻播放)等。

      ?

      相關(guān)參考資料:

      mitmproxy 使用指南:

      foofish.net/mitmproxy-t…

      ?

      使用 mitmproxy python 做攔截代理:(詳盡)

      blog.wolfogre.com/posts/usage…

      ?

      python下載安裝:(3.6以上)

      www.python.org/downloads/

      ?

      安裝mitmproxy以及遇到的坑和簡單用法:

      www.jianshu.com/p/af381ef13…

      ?

      mitmproxy的安裝教程

      zhuanlan.zhihu.com/p/33747453

      ?

      mitmproxy下載界面:

      github.com/mitmproxy/m…

      mitmproxy下載界面:(推薦)

      mitmproxy.org/

      ?

      使用python爬取抖音app視頻:

      blog.csdn.net/weixin_4171…

      ?

      靠譜的Pycharm安裝詳細(xì)教程:

      www.cnblogs.com/dcpeng/p/90…

      ?

      appium下載界面:

      github.com/appium/appi…

      ?

      Charles的安裝及使用過程:(代理服務(wù)器)

      www.cnblogs.com/littlek1d/p…

      ?

      Charles和mitmproxy代理設(shè)置

      www.cnblogs.com/knighterran…

      ?

      mitmproxy的下載及證書配置(簡書)

      www.jianshu.com/p/036e5057f…

      ?

      Pycharm No module named requests 的解決方法:

      blog.csdn.net/u010475354/…

      ?

      linux下載抖音模塊:

      /post/5be136…

      ?

      win10 python爬取數(shù)據(jù):(推薦)

      zhuanlan.zhihu.com/p/41492085

      ?

      破解版Charles的安裝:

      blog.csdn.net/weixin_4284…

      ?

      來源:https://www./content-4-459451.html

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多