我对Python比较陌生,我编写了这个python应用程序,可以从twitter上下载用户的所有可用推文(3200),并在推文上创建一个包含一系列细节的csv文件。我会发一个片段给你一个更清晰的画面:
import tweepy
import codecs
import requests
import csv
auth = tweepy.OAuthHandler("xxx", "xxx")
auth.set_access_token("xxx", "xxx")
with open("file", mode='wb') as f:
writer=csv.writer(f, delimiter='\t')
headers= ['id','username','date','status','lang','source', 'place', 'coordinates', 'in_reply_to_screen_name', 'retweet_count', 'favorite_count', 'hashtags','urls', 'retweeted_status', 'retweeted_hashtags', 'retweeted_urls']
writer.writerow(headers)
api = tweepy.API(auth)
for status in tweepy.Cursor(api.user_timeline, "x",include_entities=True).items():
row=[]
row.append(format(status.id).encode('utf-8'))
...
...
...
urls=""
for url in status.entities['urls']:
expanded_url=url['expanded_url']
r= requests.head(expanded_url)
if r.status_code in range (200,300):
urltext=format(r.url)
elif r.status_code in range (300,400):
urltext=format(r.headers['location'])
else:
urltext=format(r.status_code)
urls=urls+urltext+" "
row.append(format(urls).encode('utf-8'))
...
...
...
writer.writerow(row)
代码可以运行,但它的运行时间超过30分钟,考虑到这需要在用户列表上进行迭代,这太长了。有没有办法可以加快速度?我已经阅读过有关C库和Pypy的内容(但我有2.7版)但我找不到与tweepy的兼容性。我应该采取什么样的方法?我应该知道一个图书馆吗?
先谢谢你的帮助!!