使用JSoup刮取HTML,获取HTTP错误,状态为456

时间:2013-09-12 18:02:36

标签: java web-scraping jsoup

我正在尝试使用JSoup抓取一个网站(www.oddsportal.com),但我遇到了一个问题。

String url = "http://www.oddsportal.com/matches/";      
Document doc = null;
System.out.println("Connecting to " + url + "...");
try {
    doc = Jsoup.connect(url).get();
} catch (IOException e1) {
    e1.printStackTrace();
}

当我连接并执行“获取”时,我得到以下内容:

 Connecting to http://www.oddsportal.com/matches/...

       org.jsoup.HttpStatusException: HTTP error fetching URL. Status=456, 
       URL=http://www.oddsportal.com/matches/
            at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:435)
            at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:410)
            at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:164)
            at org.jsoup.helper.HttpConnection.get(HttpConnection.java:153)

可能是什么原因?似乎没有HTTP 456状态代码,所以我假设它是某种特定于站点的代码? 站点上有登录功能,但查看内容不是必需的。 我试过的其他网站工作得很好。

1 个答案:

答案 0 :(得分:2)

如果您添加user agent,则可以使用documentation

Document doc = Jsoup.connect("http://example.com").userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0").get();