移動端數據爬取


移動端數據爬取

  1.  抓包工具進行時轉包獲取url等信息-----------常用抓包工具fiddler青花瓷miteproxy
  2.  通過代碼發起請求;
  3.  獲取響應數據;
  4.  進行數據解析;
  5.  數據持久化。

fiddler抓包工具

   Fiddler是位於客戶端和服務器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能夠記錄客戶端和服務器之間的所有 HTTP請求,可以針對特定的HTTP請求,分析請求數據、設置斷點、調試web應用、修改請求的數據,甚至可以修改服務器返回的數據,功能非常強大,是web調試的利器。

  客戶端的所有請求都要先經過Fiddler,然后轉發到相應的服務器,反之,服務器端的所有響應,也都會先經過Fiddler然后發送到客戶端,基於這個原因,Fiddler支持所有可以設置http代理為127.0.0.1:8888的瀏覽器和應用程序。 

  (1)下載fiddler之后直接一步下一步安裝即可。    

  (2)fiddler默認只支持http協議的轉發,要想支持https協議的轉發和抓取,需要進行設置,安裝證書。(Tools---->Options---->HTTPS)

  

  (3)允許其他設備也能使用fiddler進行代理轉發請求和響應,需要如下配置:(Tools---->Options---->Connections),配置端口號如圖8888

  

  (4)在瀏覽器訪問fiddler代理:http://localhost:8888或者http://192.168.137.1:8888,出現如下頁面表示正常,FiddlerRoot certificate是移動端需要安裝的證書。

  

 

移動端設置

  (1)移動端設備必須和fiddler在同一網段才能使用fiddler抓包,可以手機連接電腦熱點,然后手動設置代理指定fiddler代理的ip(192.168.137.1)和端口(8888)。

     

  (2)證書安裝:直接在瀏覽器輸入http://192.168.137.1:8888,下載證書FiddlerRoot certificate后安裝或者通過其他方式發送到手機進行安裝信任!

      ①安卓設備:把證書放入手機的內置或外置存儲卡上,然后通過手機的"系統安全-》從存儲設備安裝"菜單安裝證書。 然后找到拷貝的FiddlerRoot.cer進行安裝即可。安裝好之后,可以在信任的憑證中找到我們已經安裝好的安全證書。

        

      ②蘋果設備:在瀏覽器下載證書進入手機設置---->通用---->描述文件---->安裝,然后設置---->通用---->關於本機---->證書信任設置---->開啟fiddler證書信任

        

 

Fiddler對移動端請求進行抓包

  案例一:句讀app數據采集  

 1 '''
 2 手機app句讀【廣場】爬取
 3     1.打開手機句讀app
 4     2.點擊下邊第三個導航,默認就是【廣場】
 5     3.在fiddler進行抓包,拿到api如下
 6     4.向下滑動手機,查看抓包工具,找出請求鏈接進行對比,都是通過get請求,起始位置不同,因此可以簡單在第一次請求時設置請求條數即可大量獲取
 7 '''
 8 import requests
 9 num=10000#自定義采集數量
10 url=f'https://judouapp.com/api/v5/statuses?app_key=af66b896-665e-415c-a119-6ca5233a6963&channel=App%20Store&device_id=18a053095ad095fa6c331b7036f589a4&device_type=iPhone10%2C3&pagesign=&per_page={num}&platform=ios&signature=f99a2253c0636fd1de73e82de39fa0e6&system_version=12.3.1&timestamp=1565141295&token=e11dda42765099ff0610bfce807ba440&version=3.8.0&version_code=51'
11 headers={
12 'Accept':'*/*',
13 'Accept-Language':'zh-Hans-CN;q=1, en-CN;q=0.9, en-US;q=0.8',
14 'Connection':'keep-alive',
15 'Accept-Encoding':'br, gzip, deflate',
16 'User-Agent':'JudouRili/3.8.0 (iPhone; iOS 12.3.1; Scale/3.00)',
17 }
18 
19 response=requests.get(url,headers=headers).json()
20 print(len(response["data"]))
21 fp=open('句讀.txt','w',encoding='utf-8')
22 for index,data in enumerate(response["data"]):
23     nickname=data["user"]["nickname"]
24     content=data["content"]
25     url=data["share_url"]
26     published_at=data["published_at"]
27     fp.write(f'{index+1}/{num+1}[{published_at}]{nickname}----{url}\n\t{content}\n\n------------------------------------')
句讀app爬取

  案例二:抖音app小視頻爬取

 1 '''
 2 通過抓包工具獲取抖音個人信息的請求連接,通過requests請求獲取視頻連接;
 3 此案例是登陸之后好友的抖音視頻,注意cookie有效期
 4 '''
 5 import os
 6 import requests
 7 url = 'https://api-hl.amemv.com/aweme/v1/aweme/post/?version_code=7.2.1&pass-region=1&pass-route=1&js_sdk_version=1.17.4.3&app_name=aweme&vid=03AF1BE2-1C49-42F4-9280-4CA78E8554F3&app_version=7.2.1&device_id=48188949731&channel=App%20Store&mcc_mnc=46001&aid=1128&screen_width=1125&openudid=bb6af869d6a21b959b2efc1414af434af4244f52&os_api=18&ac=WIFI&os_version=12.3.1&device_platform=iphone&build_number=72100&device_type=iPhone10,3&iid=80760036119&idfa=FA5BEC32-3917-4E54-92C1-8130C8B5C9FC&min_cursor=0&user_id=104290453971&count=21&max_cursor=0'
 8 headers = {
 9     'Connection':'keep-alive',
10     'x-Tt-Token':'00c5298f55f17f29df1f5870c60971c74eff742bc167d881418c39c6384740987a57ff8920ac697ca665a8c8dea7e50ec42',
11     'sdk-version':'1',
12     'User-Agent':'Aweme 7.2.1 rv:72100 (iPhone; iOS 12.3.1; zh_CN) Cronet',
13     'x-tt-trace-id':'00-d3ac15e52ed8ee0f911103e2f883d140-d3ac15e52ed8ee0f-01',
14     'Accept-Encoding':'gzip, deflate',
15     'Cookie':'tt_webid=6640617808751937028; __tea_sdk__user_unique_id=6640617808751937028; _ga=GA1.2.1852759965.1533561988; odin_tt=9f303c67997d51ed06eb85033ded2c41c8a051aafc15049d416669246d4a8fc9fbb0ee3cb48b15736c2cd7a1c68e0066; sid_guard=c5298f55f17f29df1f5870c60971c74e%7C1563533383%7C5184000%7CTue%2C+17-Sep-2019+10%3A49%3A43+GMT; uid_tt=d91cf1be6d56ed8851460c54c4bb7b47; sid_tt=c5298f55f17f29df1f5870c60971c74e; sessionid=c5298f55f17f29df1f5870c60971c74e; install_id=80760036119; ttreq=1$10c1e479908eed52765e8ee12a84e43e2253c1f3',
16     'X-Khronos':'1565148064',
17     'X-Pods':'',
18     'X-Gorgon':'83000e560000c220307e34ef71495882f95411d88045512c5c4a',
19 
20 }
21 response_json = requests.get(url, headers=headers).json()#相應的是json格式
22 video_list=response_json["aweme_list"]
23 #創建好友視頻信息列表
24 video_url=[]
25 for video_info in video_list:
26     nickname =video_info["author"]["nickname"]#昵稱
27     gender=video_info["author"]["gender"]#性別
28     desc=video_info["desc"]#文字描述
29     print(desc)
30     player_addr=video_info["video"]["play_addr"]["url_list"][0]#播放地址
31     video_url.append((f'{nickname}({gender})',desc,player_addr))
32 
33 print(video_url)
34 #循環遍歷視頻列表,分條采集視頻數據
35 for video in video_url:
36     if not os.path.exists(video[0]):
37         os.mkdir(video[0])
38     path = os.path.join(video[0], video[1] + '.mp4')
39     with open(path,'wb')as f:
40         f.write(requests.get(video[2]).content)
抖音app爬取

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM