Twython帮助:有没有一种方法可以在生物中带有特定关键字的Twitter用户中进行搜索?

时间:2019-01-24 11:09:09

标签: python twython

我正在尝试找出有趣的人来关注Twitter。去做这个, 我想查找发布包含各种关键字的推文的用户,然后 过滤掉那些不包含某些关键字的用户。

我正在使用以下代码识别鸣叫,然后自动 关注发布了推文的用户:

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?

1 个答案:

答案 0 :(得分:2)

根据Twitter Doc,您可以根据查询字符串搜索用户。但是,如果我检查Twython API documentation,则似乎不直接支持此调用。另一方面,Tweepy提供了相应的方法API.search_users,请参见here

我认为您无法在一个请求中搜索用户和推文。因此,可能必须坚持当前的tweet搜索,并检查每条tweet(如果您已看到此用户)。如果不是,则必须获取用户的个人资料并检查他们是否满足您的条件(可能是成批的用户,以限制API调用的次数)。

编辑:您可能还可以使用Twython搜索用户。尽管它没有提供专用方法,但提供了通用方法get,您可以在其中调用任何端点。因此可能看起来像:

get('users/search', params={'q': 'soccer music -sex -porn'})

我自己还没有尝试过,但这就是我从Twython Docs可以得到的。