Phantomjs-无法以TOR网络作为代理运行Phantomjs(Orchid正在作为Tor服务运行)



我实际上涉及一个涉及从网站刮擦数据的PET项目。我写的应用程序完全在Java中。此应用程序运行了几个小时,从网页上刮擦数据。

因此,发生了很多次我的IP在多个网站中被阻止。这就是我试图通过TOR Networks访问网站的原因。

我已经使用了此Stackoverlow链接中的代码来运行兰花服务。

因此,运行TOR服务后,我正在使用Phantomjs刮擦网站。我正在运行phantomjs作为 phantomjs --proxy-type=socks5 --proxy=127.0.0.1:9150 script.js(因为在9150端口运行的tor服务。Phantomjsv2.1)

script.js包含

var page = new WebPage()
var fs = require('fs');
page.open("WEBSITE_ADDRESS", function() {
  page.evaluate(function() {
  });
});
page.onLoadFinished = function() {
    fs.write('FILE_LOCATION', page.content, 'w');
    phantom.exit();
};

现在是问题。当我尝试运行phantomjs时,它很快返回返回空的HTML文件。但是,当我使用tor.exe进行相同的操作(即启动tor.exe文件,然后尝试使用上面指定的相同命令运行phantomjs),它可以完美地工作。它适用于HTTPS和HTTP。但是,在运行兰花时,HTTP和HTTP都无法正常工作。

另外一件事是,当我尝试从Java类(使用HTTPURLConnection类)连接到某些网站时,调用了启动Tor Service的方法时,我可以访问HTTP和HTTPS网站(Tor Service都可以使用HTTP和HTTPS网站由于每次访问whatemyip.com)

每次都会获得一个新的IP地址

我之所以不喜欢基于Java的Web刮擦库,例如JSOUP,是因为我试图过度使用JavaScript从使用JavaScript中刮擦数据的网站。因此,我总是得到一个IMComplete页面,而Phantomjs并非如此。而且,我也不想继续使用tor.exe来运行TOR服务,因为它使项目沉重。而且我也无法完全从Java

完全控制tor.exe

请帮助我。

在设置phantomjs与袜子(tor)的努力之后,我终于决定对那个Exe进行。这是phantomjs

的已知问题

现在,我正在使用Jbrowserdriver进行网络刮擦。这与兰花服务的魅力相同。现在爪哇的一切,我都可以控制一切。

还有一个点,Jbrowserdriver在下载页面时使用多个线程,并且似乎比Phantomjs更快。

感谢您的努力。

最新更新