Python は短いビデオのホット検索データを取得し、Excel に保存します
1. 目標を定めて仕事の準備をする
1.取得対象:本取得チュートリアル対象:ショートビデオホットサーチ
2. 準備
- 環境 python3.x
- リクエスト
- パンダ
request と pandas は、このチュートリアルに必要なライブラリです。request は http リクエストのシミュレートに使用され、pandas はデータ処理 (結果を Excel として保存) に使用されます。
- Chrome ブラウザで要求されたページを開き、F12 キーを押してブラウザ コンソールを開きます。「ネットワーク」をクリックしてネットワークを選択し、「XHR」をクリックします。対応する XHR リクエストを見つけると、ホット検索データ インターフェイスを取得できます。
2. コーディングを開始する
- 依存ライブラリをインポートする
import requests
import pandas as pd
- リクエストヘッダーを作成します。
browse_header = {
"Accept": "application/json, text/plain, */*",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36",
"Host": "www.douyin.com",
"Referer": "https://www.douyin.com/discover",
"Cookie": "_xsrf=Pd0NpG6J8kZdHtzBVnNyQP1g0rO7NKeg; _zap=d7f27b9f-4fe3-4ef4-9376-df278af16940;"
}
- リクエストインターフェイス、つまりデータアドレスを定義します。
url = "https://www.douyin.com/aweme/v1/web/hot/search/list/?device_platform=webapp&aid=6383&channel=channel_pc_web"
- リクエストを送信すると、インターフェイスは JSON 形式を返すため、ここで 1 つのステップが実行され、応答結果も JSON 形式に変換されます。
res = requests.get(url, headers=browse_header).json()
- ホットサーチデータリストを抽出します。
# 实时上升热点列表
content_list = res['data']['word_list']
- 次に、対応するフィールド (タイトル、ランキング、ホット検索インデックス、説明、リンク アドレス) を個別に json 分析を実行します。
df = pd.DataFrame( # 拼装爬取到的数据为DataFrame
{
'热搜标题': title_list,
'热搜排名': order_list,
'热搜指数': score_list,
'描述': desc_list,
'链接地址': url_list
}
)
df.to_excel('百度热搜榜.xlsx', index=False) # 保存结果数据
注: このコードでは、返されるリンク アドレスが少し異なるため、いくつかの調整を行う必要があります。調整は次のとおりです。
url_list.append(f"https://www.douyin.com/hot/{content['sentence_id']}")
完全なコード:
import requests
import pandas as pd
browse_header = {
"Accept": "application/json, text/plain, */*",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36",
"Host": "www.douyin.com",
"Referer": "https://www.douyin.com/discover",
"Cookie": "_xsrf=Pd0NpG6J8kZdHtzBVnNyQP1g0rO7NKeg; _zap=d7f27b9f-4fe3-4ef4-9376-df278af16940;"
}
url = "https://www.douyin.com/aweme/v1/web/hot/search/list/?device_platform=webapp&aid=6383&channel=channel_pc_web"
res = requests.get(url, headers=browse_header).json()
# 实时上升热点
content_list = res['data']['word_list']
title_list = []
order_list = []
score_list = []
desc_list = []
url_list = []
index = 0
for content in content_list:
index += 1
order_list.append(content['position'])
title_list.append(content['word'])
score_list.append(content['hot_value'])
desc_list.append(content['word'])
url_list.append(f"https://www.douyin.com/hot/{
content['sentence_id']}")
df = pd.DataFrame({
'热搜标题': title_list,
'热搜排名': order_list,
'热搜热度': score_list,
'描述': desc_list,
'链接地址': url_list
})
df.to_excel('抖音热搜榜.xlsx', index=False) # 保存结果数据
最後に、取得したデータを確認します。
合計50個のデータです。