Python Cursor将不相关的搜索结果返回到我选择的查询
作为我硕士学位的一部分,我需要从Twitter上收集数据,用于未来的机器学习模型 有什么问题吗? 我试图用一个给定的标签(#)来获取推文,这是一个非常简单的东西,比如#climatechange,因此我从stack overflow的其他问题中了解到,我需要添加q参数并在那里传递“#climatechange”字符串 代码如下:Python Cursor将不相关的搜索结果返回到我选择的查询,python,twitter,tweepy,python-twitter,Python,Twitter,Tweepy,Python Twitter,作为我硕士学位的一部分,我需要从Twitter上收集数据,用于未来的机器学习模型 有什么问题吗? 我试图用一个给定的标签(#)来获取推文,这是一个非常简单的东西,比如#climatechange,因此我从stack overflow的其他问题中了解到,我需要添加q参数并在那里传递“#climatechange”字符串 代码如下: # Loads JSON Credentials. twitter_credentials_json = load_twitter_credentials('Twitt
# Loads JSON Credentials.
twitter_credentials_json = load_twitter_credentials('TwitterCredentials.json')
# Creates tweepy.API object.
auth = tweepy.OAuthHandler(twitter_credentials_json['consumer_key'], twitter_credentials_json['consumer_secret'])
auth.set_access_token(twitter_credentials_json['access_token'], twitter_credentials_json['access_token_secret'])
api = tweepy.API(auth, wait_on_rate_limit=True)
data_list = []
# Iterates through the required tweets and adds them to the list.
for tweet in tweepy.Cursor(api.search, q="#climatechange", since="2020-01-01", until="2020-10-01").items(100):
data_list.append(tweet._json)
# Drops everything to the file system.
with open(f"Tweets {get_datetime_as_string()}.json", 'w', encoding='utf8') as outfile:
outfile.write(json.dumps(data_list))
outfile.close()
正如你所见,我在Twitter上搜索,从2020-01-01到2020-10-01,我需要包含字符串“#climatechange”的所有文本,我需要100个条目。
现在我打开JSON文件,在JSON文件中看到一些不相关的tweet,不包含“#climatechange”文本。我决定检查我从tweepy收到的整个对象,并且在任何地方都没有提到“#climatechange”字符串
例如:
“文本”:“RT@BetteMidler:#共和党无法执政。记住他们
主持了9-11、伊拉克战争、2008年大萧条&
当他们返回t\u2026“
“文本”:“RT@DeWayne_Fulton:#德克萨斯州可以在能源领域领先。”
创新——安全、清洁、高效、可再生
能量。\n\n@Lizzie4Congress知道th\u2026“
总结到目前为止:
我是怎么解决这个问题的?
据我所知,一旦我用某个字符串指定“q”参数,它将搜索包含此查询参数的字符串,并仅返回有效的tweet,但在我看来,存在一些问题,它将返回不相关的tweet 我会很高兴得到一些帮助,或者如果你能告诉我我错过了什么,我肯定我错过了一些小东西,这就是我没有得到正确数据的原因
谢谢。看起来不相关的推文很可能被截断为140个字符,而您搜索的文本位于“扩展”推文部分。如果将
tweet\u mode=extended
添加到api.search
调用中,则它应在full\u text
字段中检索扩展tweet的完整tweet文本
您还应该知道,传统的标准Twitter搜索API(这是
API.search
所调用的)只支持在过去7天的tweet内进行搜索。在较长的一段时间内,您将需要使用Twitter premium 30天或完整存档搜索API。非常感谢,添加tweet_mode='extended'解决了问题,并返回全文。那么你是说使用Twitter API或使用访问Twitter API的tweepy库只能从当前数据返回7天的推文?我必须购买推特的高级套餐才能获得7天以上的推特?是否有一个API可以接收超过7天的推文?谢谢是的,传统标准搜索最多返回7天的数据。30天和完整存档搜索API都有一个免费层(称为“沙盒”),但这在可用请求数量上是有限的。然而,它可能会帮助你实现更像你想要的。还请注意,premium API以及新的v2 API没有“扩展”推文的概念,因为默认情况下,所有推文都包含全文。