Если вы хотите продолжить использовать модуль r (egular) e (xpression), вам может потребоваться import re
, но, насколько я знаю, а также на основе ответов других здесь, на stackoverflow, Twitter не поддерживает поиск твитов с использованием RE (на данный момент). Я могу засвидетельствовать это, так как я собираю твиты еженедельно, а повторные поиски заканчиваются неудачей.
попробуйте использовать api.update_status( ... )
вместо twitter.update_status( ... )
. обратите внимание, что update_status()
является методом объекта api
. Также обратите внимание, что ваш id
не создан или не имеет начального значения.
Вот фрагмент из моего скрипта сбора в твиттере для дальнейшего контекста, в моей реализации я сохраняю строки твитов в csv, используя csvwriter.
for tweet in tweepy.Cursor(api.search, q='twitter').items():
csvWriter.writerow([tweet.text.encode('utf8'),
tweet.user.screen_name, tweet.created_at,
tweet.retweet_count, tweet.favorite_count,
tweet.user.location.encode('utf8')], tweet.user.id)
Как и вы, я также пытался использовать RE несколько лет назад (и совсем недавно), я мог подтвердить, что RE еще не поддерживается поиском / запросами в Твиттере. (Грустно, я знаю: /). Но здесь начинается предварительная обработка данных / твитов.
Еще одно замечание, которое я хотел бы отметить, это то, что вы не можете получить общее количество ответов, полученных твитом (я предполагаю, что, как и я, вы используете стандартный API (не премиум или корпоративный) .. см. это ссылка для контекста о функции твита reply_count.
для вашего случая я бы предложил следующий код для «поиска» ваших предполагаемых твитов, я использовал курсор tweepy для выполнения api.search, за которым следует q (uery). значение запроса в основном похоже на строку поиска в твиттере. хотя мое решение на самом деле не является вашим решением, вы можете воспользоваться моим кодом, если хотите.
import tweepy as tt
import time
import sys
reload(sys)
sys.setdefaultencoding('utf8')
#login credentials twitter account
consumer_key = '-NOT GOING TO PUT THE ACTUAL KEY IN-'
consumer_secret = '-NOT GOING TO PUT THE ACTUAL KEY IN-'
access_token = '-NOT GOING TO PUT THE ACTUAL KEY IN-'
access_secret = '-NOT GOING TO PUT THE ACTUAL KEY IN-'
#login
auth = tt.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tt.API(auth)
search_query = "hi I'm Dad"
user = api.me()
print(user.name)
max_tweets = 100
for tweet in tweepy.Cursor(api.search, q=search_query).items(max_tweets):
c=tweet.text.encode('utf8')
c=c.replace("im ","")
answer="@"+tweet.user.screen_name+" Hi " + c + ", I'm Dad!"
print ("Reply:",answer)
api.update_status(status=answer,in_reply_to_status_id=tweet.id)
time.sleep(300) #every 5 minutes
/ OGS