我试图在python中使用twitter搜索web服务。我想打电话给一个web服务,比如:
http://search.twitter.com/search.json?q=blue%20angels&rpp=5&include_entities=true&result_type=mixed从我的python程序。
有人能告诉我吗
以下是我的尝试:
import urllib
import sys
url = "http://search.twitter.com/search.json?q=blue%20angels&rpp=5&include_entities=true&result_type=mixed"
urlobj = urllib.urlopen(url)
data = urlobj.read()
print data谢谢。
发布于 2012-03-17 23:49:32
您不需要使用“异步httprequest”来使用twitter搜索api:
import json
import urllib
import urllib2
# make query
query = urllib.urlencode(dict(q="blue angel", rpp=5, include_entities=1,
result_type="mixed"))
# make request
resp = urllib2.urlopen("http://search.twitter.com/search.json?" + query)
# make dictionary (parse json response)
d = json.load(resp)可能有几个库围绕这些http请求提供了一个很好的OO接口。
要同时发出多个请求,可以使用gevent
import gevent
import gevent.monkey; gevent.monkey.patch_all() # patch stdlib
import json
import urllib
import urllib2
def f(querystr):
query = urllib.urlencode(dict(q=querystr, rpp=5, include_entities=1,
result_type="mixed"))
resp = urllib2.urlopen("http://search.twitter.com/search.json?" + query)
d = json.load(resp)
print('number of results %d' % (len(d['results']),))
jobs = [gevent.spawn(f, q) for q in ['blue angel', 'another query']]
gevent.joinall(jobs) # wait for completion发布于 2012-03-17 23:43:28
我建议您查看请求及其模块。
简单请求:
import json
import requests
params = {'rpp': 5, 'include_entities': 1, 'result_type': 'mixed',
'q': 'blue angel'}
r = requests.get('http://search.twitter.com/search.json', params=params)
print json.loads(r.text)异步:
import json
from requests import async
def add_option_params(args):
options = {'rpp': 5, 'include_entities': 1, 'result_type': 'mixed'}
args['params'].update(options)
return args
requests = []
for search_term in ['test1', 'test2', 'test3']:
request = async.get('http://search.twitter.com/search.json',
params={'q': search_term},
hooks={'args': add_option_params})
requests.append(request)
for result in async.map(requests):
print result.url, json.loads(result.text)['completed_in']https://stackoverflow.com/questions/9754562
复制相似问题