1.找到目標網址
2.按 F12 進入開發者模式,找到Network , 選擇 XHR , 刷新頁面
3.根據上圖找到url和headers內容。然後下面直接上代碼
# 爬蟲的一般思路:
# 1、確定爬取url路徑,headers參數
# 2、發送請求:requests 模擬瀏覽器發送請求,獲取響應數據
# 3、解析數據:json模塊:把json字符串轉換成python可交互的數據類型字典
# 4、保存數據:將下載的數據保存在目標文件夾中
import requests
import json
def spider():
for page in range(1,5): # 1~5 頁,測試用。
# 1、確定爬取url路徑,headers參數
url = 'https://v.6.cn/minivideo/getlist.php'
headers = {
'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36',
'cookie' : 'shrek_reft=21%7C157770825295128; _uuid=8a6029521d2956ea; roomCookie=e30%3D; shrek_uuid=B3157770825240414; _LiveGuestUser=1575067825%7C%E6%B8%B8%E5%AE%A2niuhta'
}
params = {
'act' : 'recommend',
'page' : str(page),
'pagesize' : '20'
}
# 2、發送請求:requests 模擬瀏覽器發送請求,獲取響應數據
response = requests.get(url, headers=headers, params=params)
data = response.text
# print(data)
# 3、解析數據:json模塊:把json字符串轉換成python可交互的數據類型字典
dict_data = json.loads(data)
# print(dict_data)
data_list = dict_data['content']['list'] # 拿到playurl數據
print(data_list)
# 遍歷列表下的字典
for data_list in data_list:
video_title = data_list['title'] + '.mp4'
playurl = data_list['playurl']
print(video_title, playurl)
print('正在下載:', video_title)
video_data = requests.get(playurl, headers).content
# 4、保存數據:將下載的數據保存在目標文件夾中,需要在項目下新建一個video文件夾,負責報錯
with open('video\\' + video_title, 'wb') as f:
f.write(video_data)
print('下載完成。。。\n')
if __name__ == '__main__':
spider()
4.最後上個結果圖
ps:存在一個問題,下載比較慢,也沒有說被屏蔽中斷,就是下載的很慢,難道是我網不好?可能因電腦而異吧。。。