爬取糗事小百科上的視訊
阿新 • • 發佈:2020-07-29
簡單的一下:只爬取一個頁面上的(可以爬取多個頁面)用到了拼接format以及list的遍歷的等等小的知識點
import requests import re #下面這個就是偽裝成瀏覽器正常訪問瀏覽器 headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}#建立頭部資訊 # url = 'https://www.qiushibaike.com/video/page/{}'這三個用於分頁情況下多網頁進行操作。不用的話就只爬取一個頁面的的。 #for i in range(1,4): # print(url.format(i)) url = 'https://www.qiushibaike.com/video' resp = requests.get(url,headers=headers) #print( resp )得到一個響應狀態嗎。200表示成功然後418表示反爬 #print( resp.request.headers )這裡就是為神魔需要偽裝成瀏覽器 #print(resp.text)可以看成返回全部的內容 #下面的第一個引數是查詢的規則,第二個引數是資料 # r表示原始字元()表示只要()裡面的東西。.表示任意字元*表示任意個數 info= re.findall(r'<source src="(.*)" type=\'video/mp4\' />',resp.text) #print(type(info))可以檢視他的資料型別經過測試說明提取出來的資料是一個列表 lst=[] #用於儲存拼接後的url for item in info: lst.append('https:'+item) #這樣哪些連線的顏色就變了 #print(lst)進行輸出檢視 #-------剩下的工作就是下載。以上已經獲取到了所有的連線。 '''接下來一個一個發請求''' count=0 for item in lst: #傳送請求 resp=requests.get(item,headers=headers) count+=1 #上下文管理(視訊儲存到哪裡)第一個引數為位置第二個引數為開啟方式,str的作用是型別轉換 with open('video/'+str(count)+',mp4','wb') as file: #寫入到本地磁碟 file.write(resp.content) #content說明的是二進位制的而text是文字 print("視訊下載完畢")