推文抓取——如何衡量推文强度?



我正在寻找一种方法来获取"趋势"的信息。关于推特上的某个标签/关键词。假设我想测量标签/关键词"Python"是及时发布的。例如,今天的"python"平均每1分钟发布一次,但昨天平均每2分钟发布一次。

我尝试了各种选项,但我总是跳出twitter API的限制,即如果我尝试在最后(例如)一天下载一个标签的所有推文,只有一定比例的推文被下载(通过tweepy.cursor)。

你有实现类似结果的任何想法/脚本示例吗?图书馆或指南推荐?我在网上找不到任何帮助。谢谢你。

你应该检查一下twint库。

  • 可以获取几乎所有的Tweets (Twitter API限制仅3200条Tweets);
  • 快速初始设置;
  • 可以匿名使用,无需Twitter注册;

下面是一个示例代码:

import twint

def scrapeData(search):
c = twint.Config()
c.Search = search
c.Since = '2021-03-05 00:00:00'
c.Until = '2021-03-06 00:00:00'
c.Pandas = True
c.Store_csv = True
c.Hide_output = True
c.Output = f'{search}.csv'
c.Limit = 10  # number of tweets want to fetch
print(f"n#### Scraping from {c.Since} to {c.Until}")
twint.run.Search(c)
print("n#### Preview: ")
print(twint.storage.panda.Tweets_df.head())

if __name__ == "__main__":
scrapeData(search="python")

尝试一个名为:GetOldTweets或GetOldTweets3

Twitter搜索,以及扩展它的API,并不意味着是一个详尽的推文来源。Twitter Streaming API对从匹配的输入参数中提取推文的时间限制仅为一周。因此,为了提取与一组搜索参数相关的所有历史tweet进行分析,需要绕过Twitter官方API,并需要使用模仿Twitter搜索引擎的自定义库。

最新更新