5

requests ライブラリと BeautifulSoup を使用して特定のユーザーのツイートをスクレイピングする Python 関数があります。

import requests
from bs4 import BeautifulSoup

contents = requests.get("https://twitter.com/user")
soup = BeautifulSoup(contents.text, "html.parser")

requests ライブラリが Twitter にアクセスするときは、レガシー バージョンの Twitter を使用します。ただし、最近 Twitter がレガシー バージョンのサポートを終了したため、リクエスト ライブラリは機能しなくなり、このバージョンの Twitter は古くなっていることを示す HTML コードを返します。

リクエスト ライブラリが新しいバージョンの Twitter にアクセスできるようにする方法はありますか?

4

3 に答える 3

0

私もこの問題に遭遇しました。この根本的な原因は、残念ながら Python のリクエスト ライブラリを含む「レガシー」ブラウザを Twitter が拒否していることにあります。

TwitterUser-Agentは、リクエストの一部として送信されたヘッダーを見て、使用しているブラウザを特定します。したがって、この問題に対する私の解決策は、単にこのヘッダーを偽装することでした。

あなたの特定のケースでは、次のようなことを試してください。

import requests
from bs4 import BeautifulSoup

contents = requests.get(
    "https://twitter.com/user",
    headers={"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36"}
)
soup = BeautifulSoup(contents.text, "html.parser")
于 2021-02-17T18:19:17.700 に答える