2017-04-04 155 views
0

我是相當新手,當談到編碼。如何修改此示例代碼以使用Python下載推文?如何下載twitter飼料

def get_tweets(api, input_query): 
    for tweet in tweepy.Cursor(api.search, q=input_query, lang="en").items(): 
    yield tweet 

if __name__ == "__version__": 
    input_query = sys.argv[1] 

    access_token = "REPLACE_YOUR_KEY_HERE" 
    access_token_secret = "REPLACE_YOUR_KEY_HERE" 
    consumer_key = "REPLACE_YOUR_KEY_HERE" 
    consumer_secret = "REPLACE_YOUR_KEY_HERE" 
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
    auth.set_access_token(access_token, access_token_secret) 
    api = tweepy.API(auth) 
    tweets = get_tweets(api, input_query) 
    for tweet in tweets: 
     print(tweet.text) 

我輸入了我的密鑰。

我應該能夠使用像這樣print_tweets.py「Enter subject here」的命令下載推文 我在哪裏輸入此命令?在Python中?在命令提示符下?

我收到此錯誤:

NameError Traceback (most recent call last) in() ----> 1 print_tweets.py

NameError: name 'print_tweets' is not defined

請幫幫忙!

+0

看起來像你需要包含的腳本後,「主題」是的,使用「命令提示符」,所以是這樣的:'蟒蛇print_tweets.py springbreak'等,用您的「主題」替換「springbreak」進行搜索。 'NameError'告訴你你的命令缺少第一個參數'input_query = sys.argv [1]' – davedwards

+0

也可能需要改變'if __name__ ==「__main __」:' – davedwards

回答

0

NameError是說python腳本沒有收到command line argumentssys.argv[1]是「主題」。將「在此輸入主題」替換爲您希望搜索的主題。

在這個例子中,springbreaksys.argv[1]

C:\> python print_tweets.py springbreak 

應該返回並打印出包含您的 「主題」 鳴叫文本。

您可能還需要改變:

if __name__ == "__version__":

if __name__ == "__main__":

__main__是入口點的腳本。

整個腳本:

#!/usr/bin/env python 

import sys 
import tweepy 

def get_tweets(api, input_query): 
    for tweet in tweepy.Cursor(api.search, q=input_query, lang="en").items(): 
     yield tweet 

if __name__ == "__main__": 
    input_query = sys.argv[1] 

    access_token = "REPLACE_YOUR_KEY_HERE" 
    access_token_secret = "REPLACE_YOUR_KEY_HERE" 
    consumer_key = "REPLACE_YOUR_KEY_HERE" 
    consumer_secret = "REPLACE_YOUR_KEY_HERE" 
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
    auth.set_access_token(access_token, access_token_secret) 
    api = tweepy.API(auth) 
    tweets = get_tweets(api, input_query) 
    for tweet in tweets: 
     print(tweet.text) 
+0

太棒了。謝謝你們倆! 所以,當我嘗試在命令提示我得到這個錯誤消息 運行C這樣的:\用戶\ X> print_tweets.py「受試者」 「print_tweets.py」不被識別爲一個內部或外部的命令, 可操作的程序或批處理文件。 這會導致什麼? – Aoitori

+0

嘗試在'print_tweets.py'之前添加'python',所以完整的命令應該有3個部分:'python print_tweets.py subject' – davedwards

+0

謝謝。最後,應該根據上面的腳本print_tweets.py工作嗎?如何將腳本存儲爲「print_tweets.py」,以便該命令有效? – Aoitori