我知道我可以使用Twitter API来实现这一点,但我正在尝试使用BeautifulSoup来提取以下示例tweet的转发计数:
from bs4 import BeautifulSoup
soup =
BeautifulSoup('https://twitter.com/dog_rates/status/758828659922702336',
'lxml')
retweet_count = soup.find('div', {'class': 'js-tweet-stats-container tweet-
stats-container'}).find('ul', {'class': 'stats'}).find('li', {'class': 'js-
stat-count js-stat-retweets stat-count'}).contents
print(retweet_count)
我试图打印出“contents”,这样我就可以看到下一步从哪里提取转发计数(本例中当前为4288)。在
但是,即使在这个阶段,我也会得到以下错误:
^{pr2}$如果有人能告诉我我错在哪里,我将非常感激。在
谢谢
BeautifulSoup
对象接受一个表示标记的字符串作为参数(请参见Making the soup)。你需要先得到网页的内容。例如,使用requests库:另一个问题是您没有访问包含retweet计数的元素。结果得到了几个标记元素:
^{pr2}$要解决这个问题,需要调用
find
来获取锚定标记,并使用attrs
字典来获取data-tweet-stat-count
属性:.attrs["data-tweet-stat-count"]
获取转发计数的最终产品是:
这将打印出
4288
。相关问题 更多 >
编程相关推荐