我想在推特上找出值得关注的有趣人物。为了做到这一点,我希望找到那些发布包含各种关键字的推文的用户,然后过滤掉那些bios不包含特定关键字的用户。
我使用以下代码识别tweet,然后自动跟踪推特用户:
naughty_words = ["example"]
good_words = ["example", "example"]
filter = " OR ".join(good_words)
blacklist = " -".join(naughty_words)
keywords = filter + blacklist
twitter = Twython(consumer_key, consumer_secret, access_token,
access_token_secret)
search_results = twitter.search(q=keywords, count=10)
try:
for tweet in search_results["statuses"]:
try:
st=tweet["entities"]["user_mentions"]
if st != []:
twitter.create_friendship(screen_name=st[0]["screen_name"])
except TwythonError as e:
print(e)
except TwythonError as e:
print(e)这段代码工作得很好,但是我想更多地过滤我的结果,因为这个方法返回了很多我不想遵循的用户!有谁知道我怎样才能修改它,使其包含第二个过滤器来查看用户的bios呢?
发布于 2019-01-24 12:30:13
根据Twitter文档,您可以根据查询字符串搜索用户。但是,如果我检查Twython文档,似乎不直接支持这个调用。另一方面,Tweepy提供了相应的方法API.search_users,参见这里。
我不认为你可以在一个请求中搜索用户和推特。因此,可能必须坚持您当前的推特搜索,并检查每条推文,如果您已经看到这个用户。如果不是,您必须获取用户的配置文件,并检查它们是否满足您的条件(可能是批量用户来限制API调用的数量)。
编辑:,您可能也可以使用Twython搜索用户。虽然它没有提供专门的方法,但它提供了一个通用方法get,您可以在这里调用任何端点。所以看起来可能是这样的:
get('users/search', params={'q': 'soccer music -sex -porn'})我还没有亲自尝试过,但这正是我从Twython文档中可以得到的。
https://stackoverflow.com/questions/54345234
复制相似问题