我在python3中使用TwitterAPI进行高级搜索,以查找user1从user2转发的具有特定关键字的存档推文。经过一些建议,我使用https://developer.twitter.com/en/docs/tweets/rules-and-filtering/overview/operators-by-product和https://github.com/geduldig/TwitterAPI来制作这段代码,但是当我运行代码时,我没有得到任何输出或错误信息。
当我不使用retweets_of和运算符时,代码工作正常,但这些是我想用来获取数据的规则。
我知道我的代码显示了一个优质的Sandbox搜索,但是当我拥有正确的代码时,我会将其升级到高级Full Archive搜索。
from TwitterAPI import TwitterAPI
#Keys and Tokens from Twitter Developer
consumer_key = "xxxxxxxxxxxxx"
consumer_secret = "xxxxxxxxxxxxxxxxxxx"
access_token = "xxxxxxxxxxxxxxxxxxx"
access_token_secret = "xxxxxxxxxxxxxxxxx"
PRODUCT = '30day'
LABEL = 'MyLABELname'
api = TwitterAPI(consumer_key, consumer_secret, access_token, access_token_secret)
r = api.request('tweets/search/%s/:%s' % (PRODUCT, LABEL),
{'query':'retweets_of:user.Tesla from:user.elonmusk Supercharger battery'})
for item in r:
print (item['text'] if 'text' in item else item)
有人知道我的代码有什么问题,或者有没有其他方法可以使用转发服务器和运营商进行高级搜索。是否也可以在我的代码中添加一个count运算符,因此它会将数字作为输出而不是所有的tweet写入?
你应该省略“用户”。在你的query
。
此外,通过指定“Supercharger battery”,这是完全正常的,您需要在搜索结果中同时使用两者。但是,如果您只需要任何一个单词,则可以使用“Supercharger OR battery”。
最后,要指定更多结果,请使用maxResults
参数(10到100)。
以下是您的所有示例:
r = api.request('tweets/search/%s/:%s' % (PRODUCT, LABEL),
{'query':'retweets_of:Tesla from:elonmusk Supercharger OR battery',
'maxResults':100})
Twitter高级搜索文档可能会有所帮助:qazxsw poi