作为硕士学位的一部分,我需要从Twitter收集数据,以供将来的机器学习模型使用。
有什么问题吗?
我试图获得带有给定的主题标签(#)的tweet,这是一个非常简单的东西,比如#climatechange,,因此,正如我从堆栈溢出的其他问题中了解到的那样,我需要添加q参数,并在那里传递“气候变化”字符串。
以下是代码:
# 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,我需要100个条目。现在我打开JSON文件,在JSON文件中看到一些不相关的tweet,它不包含“气候变化”文本。我决定检查我从tweepy收到的整个对象,也没有提到任何地方都有“气候变化”字符串。
例如:
"text":"RT @BetteMidler:#共和党无法治理。请记住,他们主持了#9-11、#伊拉克战争、2008年#大衰退,以及当他们返回t\u 2026“文本”文本“时:"RT @DeWayne_Fulton:#德州可以在能源创新方面发挥领导作用-安全、清洁、高效、可再生能源。\n@Lizzie4国会知道这是第2026年”,
概括地说,到目前为止:
我通过特定的conditions.
中,
我想解决这个问题的是什么?
当然,我尝试做的第一件事是为游标对象发布官方文档,但我在那里没有发现任何有用的东西,我甚至没有找到Q参数或其他任何东西,尽管许多堆栈溢出解决方案都使用这些参数。文档似乎没有完整地写好或者缺少了很多东西,documentation?哪里出了问题?
如果有人也有这个问题,我会在Stack
正如我所理解的,一旦我用一些字符串指定了"q“参数,它就会搜索包含这个查询参数的字符串,并且只返回有效的tweet,但是在我看来,存在一些问题,它返回不相关的tweet。
我很乐意得到一些帮助,或者如果你能告诉我我错过了什么,我肯定这是我错过的一些小东西,这也是我没有得到正确数据的原因。
谢谢。
发布于 2020-10-04 13:27:09
看起来不相关的Tweets很可能被截断为140个字符,搜索的文本位于“extended”部分。如果将tweet_mode=extended添加到api.search调用中,那么它将检索扩展Tweets的full_text字段中的完整Tweet文本。
您还应该意识到,遗留的标准Twitter (这是api.search正在调用的)只支持在过去7天内进行搜索。在较长的一段时间内,您将需要使用Twitter溢价30天或完整存档的搜索API。
https://stackoverflow.com/questions/64192892
复制相似问题