加速Tweepy应用程序

时间:2013-08-08 17:15:38

标签: python python-2.7 tweepy

我对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的兼容性。我应该采取什么样的方法?我应该知道一个图书馆吗?

先谢谢你的帮助!!

0 个答案:

没有答案