我在一家名爲Kabum的網上商店遇到了一些網址問題。與Firefox和其他瀏覽器相比,Jsoup獲得了不同的html
URL是http://www.kabum.com.br/cgi-local/kabum3/produtos/descricao.cgi?id=01:02:23:55:159
如果我在地址欄輸入網站,或點擊鏈接,我得到了與該產品的頁面,但如果我使用Jsoup,我得到一個頁面只有一個元刷新到相同的地址。
嘗試設置用戶代理,引用鏈接,並按照meta中的鏈接,但我得到了相同的頁面。
我的代碼是在這裏:
Document doc;
String url = "http://www.kabum.com.br/cgi-local/kabum3/produtos/descricao.cgi?id=01:02:23:55:159";
try {
String ua = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0";
String referrer = "http://www.google.com";
doc = Jsoup.connect(url).timeout(20000).userAgent(ua).referrer(referrer).get();
Elements meta = doc.select("html head meta");
for (Iterator<Element> it = meta.iterator(); it.hasNext();) {
Element element = it.next();
if (element.attr("http-equiv").matches("refresh")) {
String novaUrl = element.attr("content").replaceFirst("\\d?;url=", "");
System.out.printf("redirecting to %s%n", novaUrl);
doc = Jsoup.connect(novaUrl).userAgent(ua).referrer(referrer).get();
break;
}
}
} catch (IOException ex) {
Logger.getLogger(Teste1.class.getName()).log(Level.SEVERE, null, ex);
return;
}
System.out.println(doc);
該頁面上似乎有很多的JavaScript。你是否考慮到了這一點? –
我不需要JavaScript,只需要html。返回的HTML中jsoup僅此(不能格式化嗎?):
– Dudaskank但JavaScript可能產生很多的網頁,你正在試圖提取和看到的。如果是這樣,你可能會與jsoup運氣不佳。 –