Я хочу быть в состоянии очистить актуальные темы Twitter.
Конечно, естественный способ сделать это - использовать API Twitter. Тем не менее, большинство Тенденций не имеют Tweet_count , что является ключевым для меня.
Так что я решил почистить сайт 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'})
и, как я уже сказал, он работал нормально. Однако, если я запускаю этот же код на своем сервере Linux в AWS, результат r.content
будет '{}'
.
Так что я попытался перейти с mobile.twitter.com/i/trends
и получил похожую проблему. Я нашел с DevTools на приватной сессии, что твиттер отправляется на конечную точку https://api.twitter.com/2/guide.json
внутри, и это реальный ресурс, который возвращает данные, которые я ищу (тренды и объем твита). Однако, что бы я ни делал, с requests
я не смог получить к нему доступ с python
. Я пытался использовать тот же headers
и тот же params
, что и браузер, но безрезультатно.
Итак, я перехожу на селен, и, как и раньше, я получаю данные локально, но не фактические данные TT на сервере. Так что на данный момент я довольно потерян. Я не знаю достаточно веб-разработчика, чтобы точно понять, является ли это проблемой с cookie или чем, и как ее исправить.
TL; DR : я хочу проанализировать актуальные тренды Twitter с помощьюPython, но он не работает.