我有Tor的运行和python脚本来获得网页:
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
socket.socket = socks.socksocket
print urllib2.urlopen(URL).read()
但是,如果网址是
http://localhost/some_page.html
我得到以下错误:
raise Socks5Error(ord(resp[1]),_generalerrors[ord(resp[1])])
TypeError: __init__() takes exactly 2 arguments (3 given)
能否给我有人解释到底发生了什么?
谢谢。
这是协议的设计方式。 当你发送一个请求时,它被运到另一台机器上上网用的Socks5信封。 所以实际的请求从外部服务器取得,从而访问127.0.0.1是不可能的。
您可以在本地主机使用Tor代理用PHP。 使用卷曲。 放在局域网代理服务器配置本地IP“无代理为:”。 Exammple 192.168.1.10。 然后打电话给你的PHP作为“ http://192.168.1.10/your_script.php ”
$proxy = '127.0.0.1:9150';
$ur = "http://anydomain.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, 7);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_URL, $ur);
$curl_scraped_page = curl_exec($ch);
$error = curl_error($ch);