我正在尝试使用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状态代码,所以我假设它是某种特定于站点的代码? 站点上有登录功能,但查看内容不是必需的。 我试过的其他网站工作得很好。
答案 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();