首页 > 解决方案 > Twython 帮助:有没有办法在 twitter 用户的简历中搜索带有特定关键字的用户?

问题描述

我正在尝试找出有趣的人在 Twitter 上关注。为此,我想找到发布包含各种关键字的推文的用户,然后过滤掉 bios 中不包含某些关键字的用户。

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

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)

此代码运行良好,但我想更多地过滤我的结果,因为此方法返回了很多我不想关注的用户!有谁知道我如何修改它以包含第二个查看用户简历的过滤器?

标签: pythontwython

解决方案


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

我不认为您可以在一个请求中搜索用户和推文。所以可能不得不坚持你当前的推文搜索,如果你已经看过这些用户,请检查每条推文。如果没有,您必须获取用户的个人资料并检查他们是否满足您的条件(可能是批量用户以限制 API 调用的数量)。

编辑:您可能也可以使用 Twython 来搜索用户。虽然它不提供专用方法,但它提供了一个通用方法get,您可以在其中调用任何端点。所以它可能看起来像:

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

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


推荐阅读