挑戰每分鐘爬取100個視頻,只要網速夠快,反爬就追不到我

前言

好看視頻大部分是精品短視頻!相同的接口返回不一樣的視頻給用戶python

今天就帶你們把系統推薦的視頻給爬取下來!web

知識點

一、動態數據抓包演示面試

二、json數據解析方法json

三、視頻數據保存api

環境介紹

python 3.6瀏覽器

pycharmcookie

requestside

json工具

爬蟲的通常思路

一、分析目標網頁,肯定爬取的url路徑,headers參數學習

二、發送請求 -- requests 模擬瀏覽器發送請求,獲取響應數據

三、解析數據

四、保存數據 -- 保存在目標文件夾中

步驟

一、導入工具

import requests
import time
import pprint

 

二、肯定爬取的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'
    }

 

三、發送請求 -- requests 模擬瀏覽器發送請求,獲取響應數據

response = requests.get(base_url, headers=headers)
data = response.json()
# pprint.pprint(data)

四、解析數據

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

五、保存數據 -- 保存在目標文件夾中

 with open('video\\' + video_name, 'wb') as f:
        f.write(video_data)
        print('下載完成。。。\n')

運行代碼,效果以下圖

好了,這樣視頻就能夠慢慢的下載了

歡迎點擊右上角關注小編,除了分享技術文章以外還有不少福利,私信學習資料能夠領取包括不限於Python實戰演練、PDF電子文檔、面試集錦、學習資料等。

無論你是零基礎仍是有基礎均可以獲取到本身相對應的學習禮包!包括Python軟件工具和2020最新入門到實戰教程。加羣695185429便可免費獲取。

相關文章
相關標籤/搜索