有没有办法使用python获取推文上的评论数量?

时间:2017-09-24 23:39:11

标签: python python-3.x twitter tweepy

我正在使用Tweepy,似乎没有办法从用户那里获取特定推文的评论数量。我可以使用tweet.favorite_counttweet.retweet_count来获取收藏和转发,但我正在寻找一种方法来获取该帖子的评论数量。我甚至不需要看到评论是什么。只是数量。谢谢!

2 个答案:

答案 0 :(得分:2)

我相信你的意思是回复。无论如何,您所要做的就是仔细检查页面源(CTRL + F并搜索“回复”),这样您就可以知道以后在BeautifulSoup对象中要查找的内容:

import requests
from bs4 import BeautifulSoup

html = requests.get('https://twitter.com/Cristiano/status/912028229011169281')
soup = BeautifulSoup(html.text, 'lxml')

comments = soup.find_all('span', attrs={'class':'ProfileTweet-actionCountForAria'})[0].contents

print(*comments)

...输出:

  

9,370回复

答案 1 :(得分:0)

不同版本的 Twitter API 及其对 tweepy 的支持

Twitter API 有 2 个不同的版本,v1.1 和 v2。 v1 不允许获得评论数,只能转发和点赞。 v2 支持 metrics 并允许它。

Tweepy,使用 tweepy.API 时仅支持 v1。在撰写此答案 [05/07] 时,目前 development 支持 v2。 Tweepy features 与 v2 API 交互仅在 master 分支中可用,用于开发目的。

使用 Twitter API v2 的 Tweepy

使用生产分支安装 tweepy:
pip install git+https://github.com/tweepy/tweepy.git

检索评论数量(和其他推文指标):

import tweepy

client = tweepy.Client(bearer_token="YOUR_BEARER_TOKEN")
client_result = client.get_tweet(1387426242060767234, \
      tweet_fields=["public_metrics"])
tweet = client_result.data

print(tweet.public_metrics["reply_count"])

附言:由于功能正在开发中,事情可能会发生变化,应该更新帖子。