1. 程式人生 > 實用技巧 >python爬蟲你們最愛的YY小姐姐,這不爬取下來看看?

python爬蟲你們最愛的YY小姐姐,這不爬取下來看看?

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理

( 想要學習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 = 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)