快速制作几个Twitter API发布请求

时间:2014-01-23 02:02:08

标签: python twitter

我一直在尝试编写一个应用程序,它将通过python REQUEST模块发送几个twitter api post请求,其中时间极其重要。但是,当我开始发送更多这些请求时,处理过程需要花费更长的时间。

我已经梳理了其他几个相关的帖子,但一直找不到适合这个问题的帖子。我已经看到了几个使用异步或线程的建议,但是由于oauth的要求而在实现它时却相当不成功。

我的代码剪切如下:

import urllib2
import json
from requests_oauthlib import OAuth1
import httplib2
import requests
from datetime import datetime



print "found?"
found = raw_input()

url = 'https://api.twitter.com/1.1/direct_messages/new.json'

def get_oauth():
    oauth = OAuth1("xxxxxxxxx",
                client_secret="xxxxxxxxxxxx",
                resource_owner_key="xxxxxxxxxx",
                resource_owner_secret="xxxxxxxxxxxxxxx")
    return oauth
def get_oauthfranco():
    oauthfranco = OAuth1("xxxxxxxxxxxxxx",
                client_secret="xxxxxxxxxxxx",
                resource_owner_key="xxxxxxxxxxxx",
                resource_owner_secret="xxxxxxxx")
    return oauthfranco

startTime = datetime.now()



oauth = get_oauth()
oauthf = get_oauthfranco()


requests.post(url, data={'screen_name':'vuoc','text':'hello ppls ' + found}, auth=oauth, stream=True)
requests.post(url, data={'screen_name':'vuoc','text':'hello ppls number 2 ' + found}, auth=oauth)
requests.post(url, data={'screen_name':'vuoc','text':'hello ppls number 3 ' + found}, auth=oauthf, stream=True)
requests.post(url, data={'screen_name':'vuoc','text':'hello ppls number 4 ' + found}, auth=oauthf)
requests.post(url, data={'screen_name':'vuoc','text':'hello ppls number 5 ' + found}, auth=oauths, stream=True)

当然,最终产品将包含的不仅仅是4个帖子请求(希望做到20个以上)。

非常感谢任何关于如何通过线程/异步来优化速度的建议,而STILL能够使用oauth非常感谢!

1 个答案:

答案 0 :(得分:1)

查看http://docs.python.org/dev/library/concurrent.futures.html#threadpoolexecutor-example

concurrent.futures可用作旧版python版本的pypi上的backport