如何使用 Tor 与 Java 结合使用 [已关闭]
2022-09-02 21:40:32
更新了我的问题
我正在通过Java构建一个爬虫系统来在线比较价格。但是,我担心我的IP地址可能会被禁止。因此,我打算使用代理来更改IP动态或使用一些工具自动轮换IP。
许多人说TOR是轮换IP的有力工具。但是,我不知道如何使用Tor以及如何将Tor集成到Java Web应用程序中?
我已经搜索了谷歌来寻找例子,但仍然没有找到任何有用的东西。
任何人都可以帮助我。
更新了我的问题
我正在通过Java构建一个爬虫系统来在线比较价格。但是,我担心我的IP地址可能会被禁止。因此,我打算使用代理来更改IP动态或使用一些工具自动轮换IP。
许多人说TOR是轮换IP的有力工具。但是,我不知道如何使用Tor以及如何将Tor集成到Java Web应用程序中?
我已经搜索了谷歌来寻找例子,但仍然没有找到任何有用的东西。
任何人都可以帮助我。
你只需要让Java在Tor服务运行时使用SOCKS4代理(8118是默认的Tor端口),当它建立一个使用URL(use)的传出HTTP连接时。有关如何在 Java 8 中使用代理的信息,请参阅此处。localhost:8118
URLConnection
编辑:还有这个纯Java Tor库,你可以直接或通过微小的修改(如果它的行为完全像正常的原生Tor服务),但它有一段时间没有更新,所以可能与最新的Tor规范不兼容。
HttpClient 示例:
HttpHost proxy = new HttpHost("127.0.0.1", 8118, "http");
DefaultHttpClient httpclient = new DefaultHttpClient();
try {
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
HttpHost target = new HttpHost("www.google.com", 80, "http");
HttpGet req = new HttpGet("/");
System.out.println("executing request to " + target + " via " + proxy);
HttpResponse rsp = httpclient.execute(target, req);
...
} finally {
// When HttpClient instance is no longer needed,
// shut down the connection manager to ensure
// immediate deallocation of all system resources
httpclient.getConnectionManager().shutdown();
}
请注意,您必须为此运行Tor服务。