簡體   English   中英

如何在urllib2中使用SOCKS 4/5代理?

[英]How can I use a SOCKS 4/5 proxy with urllib2?

如何使用帶urllib2的SOCKS 4/5代理下載網頁?

您可以使用SocksiPy模塊。 只需將文件“socks.py”復制到Python的lib / site-packages目錄中,就可以了。

你必須在urllib2之前使用socks (試試pip install PySocks

例如:

import socks
import socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 8080)
socket.socket = socks.socksocket
import urllib2
print urllib2.urlopen('http://www.google.com').read()

您還可以嘗試pycurl lib和tsocks,有關更多詳細信息,請單擊此處

當您需要同時使用許多不同的代理時,添加pan的答案的替代方案。

在這種情況下,您需要像使用http代理一樣創建一個開啟工具。 GitHub中提供了一個代碼https://gist.github.com/869791

opener = urllib2.build_opener(SocksiPyHandler(socks.PROXY_TYPE_SOCKS4, 'localhost', 9999))
print opener.open('http://www.whatismyip.com/automation/n09230945.asp').read()

由於SOCKS是套接字級代理,因此必須替換urllib2使用的套接字對象。 請看一下這個解決方案。 如果猴子補丁對你來說不夠好,那么你可以嘗試從urllib2標准庫中urllib2或復制修改代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM