从Twitter API获取推文的Python方法
我正在尝试运行一个脚本来收集推特上的推文,但它一直无法运行,总是提示语法错误。我想把这些推文收集起来并保存到亚马逊的服务器上,但现在这个脚本就是不工作。我已经创建并插入了所有的推特密钥和访问令牌到下面的脚本中。
这是我使用的Python版本:3.3.4(v3.3.4:7ff62415e426,2014年2月10日,18:13:51)[MSC v.1600 64位(AMD64)],运行在win32系统上。你可以输入“copyright”、“credits”或“license()”来获取更多信息。
>>> import oauth2 as oauth
import urllib2 as urllib
access_token_key = "****"
access_token_secret = "******"
consumer_key = "******"
consumer_secret = "******"
_debug = 0
oauth_token = oauth.Token(key=access_token_key, secret=access_token_secret)
oauth_consumer = oauth.Consumer(key=consumer_key, secret=consumer_secret)
signature_method_hmac_sha1 = oauth.SignatureMethod_HMAC_SHA1()
http_method = "GET"
http_handler = urllib.HTTPHandler(debuglevel=_debug)
https_handler = urllib.HTTPSHandler(debuglevel=_debug)
'''
Construct, sign, and open a twitter request
using the hard-coded credentials above.
'''
def twitterreq(url, method, parameters):
req = oauth.Request.from_consumer_and_token(oauth_consumer,
token=oauth_token,
http_method=http_method,
http_url=url,
parameters=parameters)
req.sign_request(signature_method_hmac_sha1, oauth_consumer, oauth_token)
headers = req.to_header()
if http_method == "POST":
encoded_post_data = req.to_postdata()
else:
encoded_post_data = None
url = req.to_url()
opener = urllib.OpenerDirector()
opener.add_handler(http_handler)
opener.add_handler(https_handler)
response = opener.open(url, encoded_post_data)
return response
def fetchsamples():
url = "https://stream.twitter.com/1/statuses/sample.json"
parameters = []
response = twitterreq(url, "GET", parameters)
for line in response:
print line.strip()
if __name__ == '__main__':
fetchsamples()
1 个回答
0
你代码的第一行有语法错误,因为出现了三个大于号:
$ cat z.py
>>> import oauth2 as oauth
$ python z.py
File "z.py", line 1
>>> import oauth2 as oauth
^
SyntaxError: invalid syntax