How can I use a SOCKS 4/5 proxy with urllib2 to download a web page?
相关问题
- how to define constructor for Python's new Nam
- streaming md5sum of contents of a large remote tar
- How to get the background from multiple images by
- Evil ctypes hack in python
- Correctly parse PDF paragraphs with Python
You can use SocksiPy module. Simply copy the file "socks.py" to your Python's lib/site-packages directory, and you're ready to go.
You must use socks before urllib2. (Try it
pip install PySocks
)For example:
You can also try pycurl lib and tsocks, for more detail, click on here.
Adding an alternative to pan's answer when you need to use many different proxies at the same time.
In that case you need to create an opener like you do with a http proxy. There is a code available in GitHub https://gist.github.com/869791
Since SOCKS is a socket level proxy, you have to replace the socket object used by
urllib2
. Please take a look a this solution. If monkey patching is not good enough for you, then you can try to subclass or copy-modify the code from theurllib2
standard library.