无法从本地PC和AWS EC2实例从Twitter Web获取相同的请求结果

2024-05-29 06:23:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望能够搜集推特的热门话题

当然,自然的方法是使用twitterapi。然而,大多数趋势并不是伴随着Tweet计数而来的,这对我来说是关键

所以我决定把Twitter网站弄得一团糟

首先,我只是去寻找https://twitter.com/i/trends,它工作得很好,仍然是这样,在我的本地计算机上。然后我尝试在我的AWS EC2实例上设置脚本,但是没有结果。 这是代码的简化版本:

url = 'http://twitter.com/i/trends'
r = requests.get(url)
html = r.json()['module_html']
soup = BeautifulSoup(html, 'html.parser')
trends_list = soup.find_all('span', {'class':'u-linkComplex-target trend-name'})
tweet_volume_list = soup.findAll('div', {'class':'js-nav trend-item-stats js-ellipsis'})

就像我说的,效果很好。但是,如果我在AWS的Linux服务器上运行相同的代码,r.content的结果是'{}'

所以我试着用mobile.twitter.com/i/trends得到了一个类似的问题。我确实在一个私有会话中发现,使用DevTools,twitter会在内部到达一个https://api.twitter.com/2/guide.json端点,这是返回我要查找的数据(趋势和tweet数量)的实际资源。但是,无论我做了什么,使用requests,我都无法使用python访问它。我试着使用与浏览器相同的headersparams,但都没有用

然后我转到selenium,就像以前一样,我确实在本地获得了数据,但没有在服务器上获得实际的TT数据。所以现在我很迷茫。我对web开发人员的了解还不够,无法确切了解这是不是一个cookie问题,也无法解决它

TL;博士:我想用python来搜集Twitter的热门话题,但它不起作用


Tags: 数据代码httpscomawsjsonurlhtml

热门问题