Search code examples
pythonproxytornado

Accessing twitter using tornado.httpclient using proxy


I want to access Twitter from the terminal using tornado.httpcilent.

But Twitter is firewalled in my country. How can I access it through proxy?

Are there any other options?


Solution

  • The official documentation for tornado.httpclient contains examples how to use proxy.

    You will need curl backend for proxy support. So install the prerequisites. Here's how to do that for Ubuntu:

    $ sudo apt-get install libcurl-dev librtmp-dev 
    $ pip install tornado pycurl
    

    Then try this code:

    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()