前言 好看視頻大部分是精品短視頻!相同的介面返回不同的視頻給用戶 今天就帶大家把系統推薦的視頻給爬取下來! 知識點 1、動態數據抓包演示 2、json數據解析方法 3、視頻數據保存 環境介紹 python 3.6 pycharm requests json 爬蟲的一般思路 1、分析目標網頁,確定爬取 ...
前言
好看視頻大部分是精品短視頻!相同的介面返回不同的視頻給用戶
今天就帶大家把系統推薦的視頻給爬取下來!
知識點
1、動態數據抓包演示
2、json數據解析方法
3、視頻數據保存
環境介紹
python 3.6
pycharm
requests
json
爬蟲的一般思路
1、分析目標網頁,確定爬取的url路徑,headers參數
2、發送請求 -- requests 模擬瀏覽器發送請求,獲取響應數據
3、解析數據
4、保存數據 -- 保存在目標文件夾中
步驟
1、導入工具
import requests import time import pprint
2、確定爬取的url路徑,headers參數
# 獲取時間戳 """ 時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總毫秒數。 秒級時間戳,10位 毫秒級時間戳,13位 微秒級時間戳,16位 """ time_one = str(int(time.time() * 1000)) # print(time_one) base_url = 'https://haokan.baidu.com/videoui/api/videorec?tab=gaoxiao&act=pcFeed&pd=pc&num=20&shuaxin_id=' + time_one headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36', 'cookie': 'BIDUPSID=ABD6DB65092EB1ECFA3DB139E3DCDE8D; PSTM=1575868363; BAIDUID=ABD6DB65092EB1ECE63825000D8C97DB:FG=1; BDUSS=U1c0hpalFvb2ZLclIwY0tHSnA2T0ZLbjV3NDcyQmhkQ2FsV2VPbmptS1U1QzllRVFBQUFBJCQAAAAAAAAAAAEAAAD9hL2nuti-~M~oMzEzNjQxOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJRXCF6UVwheZn; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; PC_TAB_LOG=haokan_website_page; Hm_lvt_4aadd610dfd2f5972f1efee2653a2bc5=1578978739,1578979115; BAIDU_SSP_lcr=https://www.hao123.com/link/https/?key=http%3A%2F%2Fv.baidu.com%2F&&monkey=m-coolsites-row0&c=B22D86A598C084B684993C4C1472E65C; BDRCVFR[PaHiFN6tims]=9xWipS8B-FspA7EnHc1QhPEUf; delPer=0; PSINO=6; H_PS_PSSID=; Hm_lpvt_4aadd610dfd2f5972f1efee2653a2bc5=1578982791; reptileData=%7B%22data%22%3A%22ff38fdbd98456480e9c9c7834cbfeaa39236e14520ac985b719893846080819083f656303845fdcba03de7a67af409104bd1b7bccbc028b467f251922334608c1b34b919ef391c146a5ad41b8099df302ec0d32f3a55b4271300112ff8e8f12a1cde132ecaf78f8df8d9c97ddd9abefa4d7a4d8bdd641c156c016dba346150a8%22%2C%22key_id%22%3A%2230%22%2C%22sign%22%3A%226430f36d%22%7D' }
3、發送請求 -- requests 模擬瀏覽器發送請求,獲取響應數據
response = requests.get(base_url, headers=headers) data = response.json() # pprint.pprint(data)
4、解析數據
data_list = data['data']['response']['videos'] # --列表 # print(data_list) # 遍歷列表 for data in data_list: video_name = data['title'] + '.rmvb' # 視頻文件名 video_url = data['play_url'] # 視頻的url地址 # print(video_name, video_url) # print(type(video_name)) # 再次發送請求 print('正在下載:', video_name) video_data = requests.get(video_url, headers=headers).content
5、保存數據 -- 保存在目標文件夾中
with open('video\\' + video_name, 'wb') as f: f.write(video_data) print('下載完成。。。\n')
運行代碼,效果如下圖
好了,這樣視頻就可以慢慢的下載了
歡迎點擊右上角關註小編,除了分享技術文章之外還有很多福利,私信學習資料可以領取包括不限於Python實戰演練、PDF電子文檔、面試集錦、學習資料等。
不管你是零基礎還是有基礎都可以獲取到自己相對應的學習禮包!包括Python軟體工具和2020最新入門到實戰教程。加群695185429即可免費獲取。