使用HTMLUnit进行网页抓取时拒绝连接

时间:2012-12-27 17:53:18

标签: connection web-scraping htmlunit

我正在尝试使用HTMLUnit构建一个java应用程序来抓取一个网站。提取一些数据后,应用程序遇到以下异常 - java.lang.RuntimeException:org.apache.http.conn.HttpHostConnectException:与siteURL的连接被拒绝。

如果我再次运行应用程序,它可以在失败之前再次提取一些数据并使用相同的异常。服务器可能会看到来自同一客户端IP的大量请求,并拒绝连接请求。

此外,当应用程序遇到此问题时,我可以使用浏览器连接到该站点。

我该如何克服这个问题?在网络抓取应用程序中,如何解决和解决这些问题?

1 个答案:

答案 0 :(得分:0)

这是我调试此类问题的方法:

下载Fiddler

默认情况下,fiddler侦听端口8888,你所要做的就是配置webClient以使用fiddler作为代理&然后,所有发送的请求都可以在小提琴手中看到(分析,修改和重新发送)。

    client.getOptions().setProxyConfig(new ProxyConfig("127.0.0.1", 8888));

从我之前的经验中可以看出,目标网站在一段时间后会阻塞,您可以尝试添加暂停或旋转代理&用户代理。您也可以尝试清除cookie。