Pythonは新浪微博のコメントデータを取り出し、csvファイルに書き込む.

4750 ワード

新浪微博のウェブページ版の爬虫類は比較的に困難なため、携帯電話のウェブページの端で爬虫類を取る方式を採用します
操作手順は次のとおりです.
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()

 
這い出したデータに中国語以外のデータがある場合は、中国語を抽出するには、「文字の中の中国語をフィルタリングする」を参照してください.
 
未完待续...