我有一个python函数,它使用请求库和BeautifulSoup来抓取特定用户的tweet。
import requests
from bs4 import BeautifulSoup
contents = requests.get("https://twitter.com/user")
soup = BeautifulSoup(contents.text, "html.parser")当requests库访问Twitter时,它使用遗留版本的Twitter。然而,由于Twitter最近放弃了对其遗留版本的支持,requests库不再工作,并返回html代码,表明此版本的Twitter已过时。
有没有办法让requests库访问更新版本的Twitter?
发布于 2020-06-27 06:58:27
requests库将访问您传递给它的URL。我建议检查Twitter API Docs并更新您的代码,使其与最新版本相对应。
发布于 2020-07-11 15:20:27
不能直接回答(也没有足够的观点来评论),但是有同样的问题,我找到了一些新的工具。https://github.com/bisguzar/twitter-scraper使用requests_html来获取tweet(参见其tweets.py模块)。https://github.com/Mottl/GetOldTweets3/是另一个用于抓取tweet的强大python工具。
发布于 2021-02-18 02:19:18
我也遇到过这个问题。造成这种情况的根本原因是Twitter拒绝了“传统”浏览器,不幸的是,它包含了Python的请求库。
Twitter通过查看作为请求的一部分发送的User-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")https://stackoverflow.com/questions/62181047
复制相似问题