2015-09-27 61 views
0

我想转推前,文件管理器,Twython某些词。我无法想出一种方法来实现它的功能,而不是过滤掉某些单词,而是将这些单词添加到转发的单词中。这里是我的代码:过滤器鸣叫关键字

naughty_words = ["",'"Sign up"', "kindle", "read", "book", "amzn", "amazon"] 
    good_words = ["Giveaway", ""] 

    filter = "OR".join(good_words) 
    blacklist = "-".join(naughty_words) 
    keywords = filter + blacklist 

    search_results = twitter.search(q="keywords", count= 5) 
    try: 
     for tweet in search_results["statuses"]: 
      twitter.retweet(id = tweet["id_str"]) 
      time.sleep(15) 

    except TwythonError as e: 
      print e 

回答

0

我看到两个问题,解决这些问题,看看它是否修复你的问题。

1)keywords不能正常工作按预期方式。从您的代码现在我得到GiveawaySign up -kindle -read -book -amzn -amazon。这是因为good_words是1元素列表,因此.join未按预期工作。

2)“注册”的方式进行,将显示为“注册”和“up”这是更可能的问题。

尝试以下操作:

naughty_words = ["",'"Sign up"', "kindle", "read", "book", "amzn", "amazon"] 
good_words = ["Giveaway", ""] 

而且,除去空间OR之后和之前保留一个。

编辑

更改filterblacklist到:

filter = "".join(good_words) 
blacklist = " -".join(naughty_words) 

既然你只有在good_words一个字有不是需要为OR。你应该得到:

Giveaway -"Sign up" -kindle -read -book -amzn -amazon

+0

这并没有解决任何问题。我仍然有同样的问题:“( – Alex

+0

'赠品或者 - ‘注册’-kindle - 读取-book -amzn -amazon'是我提供的一个'GiveawaySign了-kindle - 读取-book -amzn -amazon。 '是从keywords'的'打印,输出是在一开始完全不同的遵守[搜索API(https://dev.twitter.com/rest/public/search)确保它的更新正确。我跑它和工作对我罚款。 – Leb

+0

在哪里我把那东西吗?我更新了上面的问题,以符合我的变化。你能告诉我,我应该改变的东西具体?(我是新来的这个东西“) – Alex