我对 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 的兼容性。我应该采取什么样的方法?有我应该注意的图书馆吗?
在此先感谢您的帮助!!