Pythonは新浪微博のコメントデータを取り出し、csvファイルに書き込む.
4750 ワード
新浪微博のウェブページ版の爬虫類は比較的に困難なため、携帯電話のウェブページの端で爬虫類を取る方式を採用します
操作手順は次のとおりです.
1.ホームページ版は新浪微博に登録する
2.開くcn
3.興味のある話題を探して、対応するデータインタフェースのリンクを取得する
4.cookiesとheadersの取得
這い出したデータに中国語以外のデータがある場合は、中国語を抽出するには、「文字の中の中国語をフィルタリングする」を参照してください.
未完待续...
操作手順は次のとおりです.
1.ホームページ版は新浪微博に登録する
2.開くcn
3.興味のある話題を探して、対応するデータインタフェースのリンクを取得する
4.cookiesとheadersの取得
# -*- coding: utf-8 -*-
import requests
import csv
import os
base_url = 'https://m.weibo.cn/api/comments/show?id=4131150395559419&page={page}'
cookies = {'Cookie':'xxx'}
headers = {'User-Agent':'xxx'}
path = os.getcwd()+"/weibo.csv"
csvfile = open(path, 'a+', encoding='utf-8',newline='')
writer = csv.writer(csvfile)
writer.writerow(('username','source','comment'))
for i in range(0,83):
try:
url = base_url.format(page=i)
resp = requests.get(url, headers=headers, cookies=cookies)
jsondata = resp.json()
data = jsondata.get('data')
for d in data:
created_at = d.get("created_at")
source = d.get("source")
username = d.get("user").get("screen_name")
comment = d.get("text")
print((username,source,comment))
writer.writerow((username, source, comment))
except:
print('*'*1000)
pass
csvfile.close()
這い出したデータに中国語以外のデータがある場合は、中国語を抽出するには、「文字の中の中国語をフィルタリングする」を参照してください.
未完待续...