傳說中,有人因為只是遠遠的看了一眼法外狂徒張三就進去了??
我現(xiàn)在是獲取他視頻,豈不是直接終生了??
網(wǎng)友:趕緊跑路吧 ??
好了話不多說,我們直接開始今天的內(nèi)容吧!
你需要準備
環(huán)境使用
- Python 3.8
- Pycharm
模塊使用
- import requests
- import csv
- import datetime
- import hashlib
- import time
爬蟲實現(xiàn)基本流程
一、數(shù)據(jù)來源分析
- 明確需求
- 明確采集網(wǎng)站以及數(shù)據(jù)
網(wǎng)址: https://space.小破站.ubdate
數(shù)據(jù): 視頻基本信息: 標題 播放量 評論 彈幕 上傳時間 … - 抓包分析
- 打開開發(fā)者工具: F12 / 右鍵點擊檢查選擇network
- 點擊網(wǎng)頁下一頁 --> XHR 第一條數(shù)據(jù)包就是我們需要的內(nèi)容
數(shù)據(jù)包: https://api.小破站.com/x/space/wbi/arc/search?mid=517327498&ps=30&tid=0&pn=3&keyword=&order=pubdate&platform=web&web_location=1550101&order_avoided=true&w_rid=c9a9f931486961175b1e8138d695680e&wts=1690027894
二. 代碼實現(xiàn)步驟 <固定四個大步驟>文章來源:http://www.zghlxwxcb.cn/news/detail-604436.html
- 發(fā)送請求, 模擬瀏覽器對于url地址發(fā)送請求
請求鏈接: 數(shù)據(jù)包鏈接 - 獲取數(shù)據(jù), 獲取服務器返回響應數(shù)據(jù)
開發(fā)者工具: response - 解析數(shù)據(jù), 提取我們需要的數(shù)據(jù)內(nèi)容
視頻基本信息 - 保存數(shù)據(jù), 把信息數(shù)據(jù)保存表格文件
代碼展示
import time
# 導入數(shù)據(jù)請求模塊 第三方模塊 需要安裝
import requests
# 導入格式化輸出模塊
from pprint import pprint
import datetime
# 導入csv模塊
import csv
import hashlib
f = open('信息.csv', mode='w', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
'標題',
'描述',
'BV號',
'播放量',
'彈幕',
'評論',
'時長',
'上傳時間',
])
csv_writer.writeheader()
# 模擬瀏覽器 -> 基本反反爬蟲措施
headers = {
# 用戶代理 表示瀏覽器基本身份信息
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
for page in range(1, 11):
string = f'keyword=&mid=517327498&order=pubdate&order_avoided=true&platform=web&pn={page}&ps=30&tid=0&web_location=1550101&wts={int(time.time())}6eff17696695c344b67618ac7b114f92'
# 實例化對象
md5_hash = hashlib.md5()
md5_hash.update(string.encode('utf-8'))
# 請求鏈接
url = 'https://api.小破站.com/x/space/wbi/arc/search'
# 請求參數(shù)
data = {
'mid': '517327498',
'ps': '30',
'tid': '0',
'pn': page,
'keyword': '',
'order': 'pubdate',
'platform': 'web',
'web_location': '1550101',
'order_avoided': 'true',
'w_rid': md5_hash.hexdigest(),
'wts': int(time.time()),
}
# 發(fā)送請求 <Response [200]> 響應對象 表示請求成功
response = requests.get(url=url, params=data, headers=headers)
for index in response.json()['data']['list']['vlist']:
# 時間戳 時間節(jié)點 --> 上傳視頻時間點
date = index['created']
dt = datetime.datetime.fromtimestamp(date)
dt_time = dt.strftime('%Y-%m-%d')
dit = {
'標題': index['title'],
'描述': index['description'],
'BV號': index['bvid'],
'播放量': index['play'],
'彈幕': index['video_review'],
'評論': index['comment'],
'時長': index['length'],
'上傳時間': dt_time,
}
# 寫入數(shù)據(jù)
csv_writer.writerow(dit)
print(dit)
好了,今天的分享就到這里結(jié)束了,咱們下次見文章來源地址http://www.zghlxwxcb.cn/news/detail-604436.html
到了這里,關(guān)于Python采集法外狂徒張三所有視頻【含jS逆向解密】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!