日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python學習——爬蟲(抖音)

系統 2132 0

爬蟲僅限于知識學習,本代碼不得用于任何商業活動侵權,如有不適,請聯系博主進行修改或者刪除。
今天總結的第三篇,這些個代碼是模仿著寫出來的,這兒我著重寫我覺有用的東西了,一上午過去了,還只弄完三篇,時間好緊張啊。
訪問的是https://www.douyin.com/share/user/63692754272的抖音,找到其url,并進行訪問
首先擺出源碼

            
              import requests
import json
url="https://www.douyin.com/web/api/v2/aweme/like/?user_id=63692754272&sec_uid=&count=21&max_cursor=0&aid=1128&_signature=t.9P0BAd6rId0A9Qpgu2N7f.T8&dytk=102f4e17eb7a0ff33c5500bb284aaeda"
headers={
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3676.400 QQBrowser/10.4.3469.400'
}
cookies={
    'cookie':'ga=GA1.2.13243249.1563845400; _gid=GA1.2.1780807193.1566271470; _ba=BA0.2-20190820-5199e-CteeFBBR2NT79iyj4gab'
}
count=1
while True:
    result = requests.get(url, headers=headers)
    result.encoding='utf-8'
    # result1=json.loads(result.text)
    result1=result.json()
    if len(result1.get("aweme_list")) !=0:
        break
    print("訪問第{}次".format(count))
    count=count+1
print(result1)
x=0
for i in result1['aweme_list']:
   m=i['video']['download_addr']['uri']
   paqu='https://aweme.snssdk.com/aweme/v1/playwm/?video_id='+m
   # title = i['desc']
   # print(title)
   x+=1
   while True:
       mp4 = requests.get(paqu, headers=headers, stream=True).content
       if mp4!=None:
           break
   open(str(x)+ '.mp4', 'wb').write(mp4)

print('爬取完成')


            
          

然后著一進行分析
訪問的網址是:https://www.douyin.com/share/user/63692754272/,用訪問者的形式進行訪問,避免反扒,這是最初級的方式,高級一點的就是再加上cookie,雖然不知道有啥用,感覺加上以后,出錯的情況小很多了,解碼這兒用的是utf-8

            
              import requests
import json
url="https://www.douyin.com/web/api/v2/aweme/like/?user_id=63692754272&sec_uid=&count=21&max_cursor=0&aid=1128&_signature=t.9P0BAd6rId0A9Qpgu2N7f.T8&dytk=102f4e17eb7a0ff33c5500bb284aaeda"
headers={
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3676.400 QQBrowser/10.4.3469.400'
}
cookies={
    'cookie':'ga=GA1.2.13243249.1563845400; _gid=GA1.2.1780807193.1566271470; _ba=BA0.2-20190820-5199e-CteeFBBR2NT79iyj4gab'
}

            
          

因為抖音具有一種反扒措施,它這個訪問結果不一定會有,需要反復訪問,因此我寫了個while循環,直到訪問到結果

            
              count=1
while True:
    result = requests.get(url, headers=headers)
    result.encoding='utf-8'
    # result1=json.loads(result.text)
    result1=result.json()
    if len(result1.get("aweme_list")) !=0:
        break
    print("訪問第{}次".format(count))
    count=count+1
print(result1)

            
          

python學習——爬蟲(抖音)_第1張圖片
將這一條內容放到bejson中進行解析(bejson可以百度找到)
python學習——爬蟲(抖音)_第2張圖片
然后再依據內容,找到我們需要的下載地址,視頻的下載,需要使用其視頻鏈接,以二進制、流的形式進行導出

            
              for i in result1['aweme_list']:
   m=i['video']['download_addr']['uri']
   paqu='https://aweme.snssdk.com/aweme/v1/playwm/?video_id='+m
   # title = i['desc']
   # print(title)
   x+=1
   while True:
       mp4 = requests.get(paqu, headers=headers, stream=True).content
       if mp4!=None:
           break
   open(str(x)+ '.mp4', 'wb').write(mp4)

            
          

存在一個未解決的問題,按理來說這兒是可以按照視頻名字來命名的,但是程序執行到第四個時,會報錯,我將名字換成了數字之后(也就是x),就能正常爬取了,不知道這是啥反扒措施,有大佬能解決的話,歡迎評論區留言。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 石狮市| 南投县| 阿图什市| 泰安市| 奈曼旗| 山东省| 高碑店市| 信丰县| 穆棱市| 神池县| 道真| 革吉县| 定兴县| 永胜县| 临泉县| 贵港市| 九江市| 台湾省| 大丰市| 麻阳| 清苑县| 当涂县| 长垣县| 泌阳县| 垫江县| 辉南县| 长沙市| 自治县| 乌拉特后旗| 武山县| 泗洪县| 郯城县| 泰和县| 多伦县| 巴青县| 会昌县| 长白| 沅陵县| 惠安县| 师宗县| 昌宁县|