2

我正在尝试使用此Jsoup代码解析 Web url:

Document doc = Jsoup.connect("http://www.*url*.com").get();
String title = doc.title();
System.out.println("title: "+title);

我总是收到以下错误

Exception in thread "main" java.io.IOException: 403 error loading URL http://www.*url*.com
    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:327)
    at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:130)
    at org.jsoup.helper.HttpConnection.get(HttpConnection.java:119)
    at HttpRequestPoster.main(HttpRequestPoster.java:151)

我的电脑是由 kerio winroute 防火墙控制的网络成员。在互联网连接之前,我们从我们的网络浏览器连接到防火墙。原因应该是这个。我如何解析网址?

4

2 回答 2

2

设置用户代理对我有用。

Document document = Jsoup.connect(url).header("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2").get();
于 2011-01-03T00:01:51.740 回答
1

HTTP 错误 403只是意味着Forbidden.

服务器理解请求,但拒绝执行。

换句话说,服务器端根据请求特定信息决定不允许请求者接收响应。这可能有很多原因:请求标头中缺少特定信息、IP 地址被禁止、用户代理被禁止等等。

你最诚实的赌注是联系相关网站的管理员,要求澄清和许可。您还可以使用真正的网络浏览器并使用 Firebug 或 Fiddler2 等 HTTP 流量跟踪器来检查请求/响应详细信息。Jsoup 的HttpConnection至少提供了几种方法来在必要时设置标头、cookie 和/或用户代理。

于 2011-01-03T00:06:41.947 回答