2016-03-05 59 views
0

你好,我是超新的編碼,仍然在階段,複製粘貼,學習,改變一些變量,運行,交叉手指,拳頭或拳頭等等。twython搜索字符串限制與twitter api:結果缺失

我創建了使用Twitter的殭屍this tutorial

我的代碼如下

import time 
from twython import Twython, TwythonError 

app_key = "xxxx" 
app_secret = "xxxx" 
oauth_token = "xxxx" 
oauth_token_secret = "xxxx" 


naughty_words = [" -RT"] 

good_words = ["search phrase", "another search phrase", "yet another", "one more", "search phrase two", "TFW search phrase"] 


filter = " OR ".join(good_words) 

blacklist = " -".join(naughty_words) 

keywords = filter + blacklist 

twitter = Twython(app_key, app_secret, oauth_token, oauth_token_secret) 

search_results = twitter.search(q=keywords, count=100) 
try: 
for tweet in search_results["statuses"]: 
    try: 
     twitter.retweet(id = tweet["id_str"]) 
     except TwythonError as e: 
     print e 
except TwythonError as e: 
print e 

time.sleep(300) 

因此,當我運行的代碼有時得到的結果,並將其轉推他們,但如果我運行的代碼只是發現更多的搜索字詞中的兩個,並轉發它們。

我不知道我是否在Twitter搜索API限制(我發現幾個不同的數字)或字符串的或或或或是搞砸了或太長。

歡迎任何關於python和twitter api的建議。非常感謝

編輯:最多500個字符的UTF-8,URL編碼的搜索查詢,包括運算符。查詢可能會受到複雜性的限制。

即使與OR和空間我仍然沒有超過極限。

+0

看看[這裏](https://dev.twitter.com/rest/公開/搜索)以供參考。你沒有指定「你找到更多」的意思。無論如何,我會說你的問題可能是你使用短語而不是單詞。在twitter查詢中,兩個詞之間的空格是AND。如果用「term1 term2 OR term3 term4 OR term5 ....」進行搜索,它實際上會開始合併AND和OR,我不知道它最終會做什麼。請注意,在您提供的教程中,它使用的是單詞,而不是短語。希望能幫助到你。 – lrnzcig

+0

嗨,非常感謝,是不是非常精確對不起 當我減少搜索條件,應用程序返回並因此retweets更多的結果,當我搜索完整的字符串沒有轉推。 就像我說過的,我認爲這可能與「或」或「或」有些混淆。 中提供但她並指定一個短語作爲搜索詞之一, 我認爲短語進行隔離,使之將搜索教程: 「字詞1字詞2」或「項3項4」或「一詞5短語6「 有沒有什麼方法可以查看twython向twitter詢問什麼,看看」它最終會做什麼?「 –

+0

嗨。你是對的,你提供的教程中有一些短語。那麼,在過去的某個時候,當我試圖將OR與短語結合使用(隱含地包含AND)時,我遇到了一些問題,這就是我之前提到的原因。順便說一下,'twython'不會觸及你撰寫的查詢,只是將它發送給twitter。如果我今天得到一些時間,我會試着調查你的例子,如果我發現任何事情,我會發佈一個答案。 – lrnzcig

回答

0

我想我通過使用%22而不是引號解決了這個問題。許多感謝

good_words = [ 「%2本是一個短語%22」, 「%22this是另一個%22」]