我想使用tornado.httpcilent
从终端访问Twitter。
但Twitter在我的国家受到了防火墙的攻击。我如何通过代理访问它?
还有其他选择吗?
答案 0 :(得分:5)
official documentation for tornado.httpclient包含如何使用代理的示例。
您需要curl后端才能获得代理支持。所以安装先决条件。以下是如何为Ubuntu做到这一点:
$ sudo apt-get install libcurl-dev librtmp-dev
$ pip install tornado pycurl
然后试试这段代码:
from tornado import httpclient, ioloop
config = {
'proxy_host': 'YOUR_PROXY_HOSTNAME_OR_IP_ADDRESS',
'proxy_port': 3128
}
httpclient.AsyncHTTPClient.configure(
"tornado.curl_httpclient.CurlAsyncHTTPClient")
def handle_request(response):
if response.error:
print "Error:", response.error
else:
print response.body
ioloop.IOLoop.instance().stop()
http_client = httpclient.AsyncHTTPClient()
http_client.fetch("http://twitter.com/",
handle_request, **config)
ioloop.IOLoop.instance().start()