3

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

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

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

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

4

1 回答 1

0

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

下载提琴手

默认情况下,fiddler 侦听端口 8888,您所要做的就是将 webClient 配置为使用 fiddler 作为代理,然后可以在 fiddler 中查看(分析、修改和重新发送)所有正在发送的请求。

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

根据我之前的经验,目标站点会在一段时间后阻塞,您可以尝试添加暂停或轮换代理和用户代理。您也可以尝试清除 cookie。

于 2013-12-15T19:05:46.753 回答