本文的文字及圖片來源于網路,僅供學習、交流使用,不具有任何商業用途,著作權歸原作者所有,如有問題請及時聯系我們以作處理
( 想要學習Python?Python學習交流群:1039649593,滿足你的需求,資料都已經上傳群檔案流,可以自行下載!還有海量最新2020python學習資料, )
一、前言
yy平臺,直播界的先驅,有很多主播會把一些自己的直播精彩看點上傳到該平臺下的小視頻欄目中今天帶大家爬取yy小視頻欄目中所有的小視頻,

二、課程亮點
1、動態資料抓包演示
2、json資料決議方法
3、視頻資料保存
三、所用到得庫
import requests # 第三方模塊 import pprint
四、環境配置
python 3.6
pycharm(專門為python打造的一款編輯器) 環境搭建 專業版收費
requests
五、爬蟲案例一般步驟(思路):
1.找資料所在的url地址(分析網頁頁面<靜態/動態(抓包)>)
2.發送網路請求(requests)
3.資料的決議(我們要的資料)
4.資料保存(本地\資料庫)
六、找尋資料地址:
按照常規操作就是:
1、打開開發者工具,選擇 network
2、點擊重繪網頁、查看回傳資料
但是這個網站和平常的靜態網頁有所不同,按照正常的網站它是有翻頁的,而這個網站是下滑網頁,才會出現新的視頻資料,
所以按照步驟應該是:
1、打開開發者工具,選擇清空所有資料內容
2、下滑網頁內容
如果需要一個一個去找的話,是非常的麻煩且浪費時間,可以選擇復制一個視頻的名字或者發布視頻用戶的名字,在開發者工具當中進行搜索,
七、發送網路請求找尋資料所在的url地址(分析網頁頁面<靜態/動態(抓包):
# 1.找資料所在的url地址(分析網頁頁面<靜態/動態(抓包)>) url = 'https://api-tinyvideo-web.yy.com/home/tinyvideosv2?' headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'} params = {'data': '{"uid":0,"page":1,"pageSize":10}'} # 2.發送網路請求(requests) response = requests.get(url=url, params=params, headers=headers) json_data = response.json() # pprint.pprint(json_data) # 3.資料的決議(我們要的資料) data_list = json_data['data']['data'] for data in data_list: username = data['username'] + '.mp4' # 直播名字 flv avi rmvb resurl = data['resurl'] # 視頻地址 # print(username, resurl) # 請求視頻資料 video_data = https://www.cnblogs.com/aa1273935919/p/requests.get(url=resurl, headers=headers).content # 請求到的視頻資料
注意點:
我傳的param的引數和鏈接有一些不一樣,我只傳入了data,因為如果是所有的引數都傳入的話,那么回傳的結果是字串形式,這樣還會多一些步驟
1、正則匹配只提取里面的json格式資料;
2、字串轉json,

八、進行資料保存:
# 4.資料保存(本地\資料庫) with open('video\\' + username, mode='wb') as f: f.write(video_data) print('保存完成:', username)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/238887.html
標籤:Python
下一篇:python aes加密
