use*_*301 10 php proxy web-crawler tor transparentproxy
好的,这就是我需要的.我有一个基于PHP的网络爬虫.它可以在这里访问:http: //rz7ocnxxu7ka6ncv.onion/ 现在,我的问题是我的蜘蛛实际抓取页面需要在SOCKS端口9050上这样做.事情是,我必须通过Tor隧道连接它以便它可以解析.onion域名,这就是我正在索引的内容.(仅以.onion结尾.)我使用php crawl.php从命令行调用此脚本,并添加适当的参数来抓取页面.这就是我的想法:有没有办法强迫它使用Tor?或者我可以强迫我的整个机器通过Tor隧道,以及如何?(就像强制所有流量通过127.0.0.1:9050)也许如果我设置全局代理设置,php会尊重它们吗?
如果我的任何解决方案有效,我该怎么做?(请一步一步说明,我是菜鸟.)
我只想创建自己的Tor搜索引擎.(不要推荐我的p2p搜索引擎 - 这不是我想要的 - 我知道它们存在,我完成了我的作业.)如果你有兴趣看看,这里是爬虫来源:也许有心的人可以修改它以使用127.0.0.1:9050进行所有抓取请求? http://pastebin.com/kscGJCc5
Ben*_*Bos 10
cURL还支持SOCKS连接; 试试这个:
<?php
$ch = curl_init('http://google.com');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
// SOCKS5
curl_setopt($ch, CURLOPT_PROXY, 'localhost:9050');
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
除非我遗漏了一些答案是肯定的,这里有一些关于Tor网站的文档.说明非常具体.虽然我没有将Tor设置为代理,但这是我考虑过的,这是我要开始的地方.
编辑:在Linux上设置Tor并将其用作代理,这很简单,如文档所示.
sudo apt-get install tor
sudo /etc/init.d/tor start
netstat -ant | grep 9050 # verify Tor is running
Run Code Online (Sandbox Code Playgroud)
现在,在查看OP代码后,我们看到对file_get_contents的调用.虽然当您想要开始参数化请求时,在第一个file_get_contents上使用的最简单的方法变得很麻烦,因为您必须使用流上下文.
第一个建议是转向卷曲,但是再次,为了真正回答这个问题,更多地阅读有关SOCKS如何使用HTTP的更多信息......但是从技术上回答这个问题,如何向Tor SOCKS代理发送HTTP请求在localhost上,再次轻松..
<?php
$ch = curl_init('http://google.com');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, 'https://127.0.01:9050/');
curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
但Tor告诉我们什么?
HTTP/1.0 501 Tor不是HTTP代理
内容类型:text/html; 字符集= ISO-8859-1
基本上,了解有关SOCKS和HTTP的更多信息.另一个选择是谷歌周围的PHP SOCKS客户端.快速检查显示一个库声称它可以通过SOCKS发送HTTP请求.
编辑:
好的,还有1个编辑!在完成我的上一篇文章后几秒钟,我找到了一种方法. 本文向我们展示了如何设置一个名为Privoxy的东西,它将SOCKS请求转换为HTTP请求.把它放在Tor和blamo前面,我们通过Tor发送代理的HTTP请求!
| 归档时间: |
|
| 查看次数: |
16942 次 |
| 最近记录: |