这是一个中文网站。(Link)
我想用Jsoup来解析这个网站,但似乎Jsoup无法正常工作。
一个非常简单的代码:
Document doc = Jsoup.connect("http://pchome.megatime.com.tw/stock/sid1101.html")
.timeout(0).get();
Elements links = doc.select("a");
for(Element e : links) {
System.out.println(e.text());
}
什么也没出来。
我的Jsoup可以解析除此之外的每个网站。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:2)
网站正在做一件有趣的事情,首先它返回一个重定向(http代码302),然后返回一个小页面,该页面使用is_check=1
参数执行表单提交。我们必须遵循所有这些步骤。
此外,您需要指定用户代理。
总结一下,就这样做:
Response res = Jsoup.connect("http://pchome.megatime.com.tw/stock/sid1101.html")
.followRedirects(false)
.timeout(0)
.method(Method.GET)
.header("User-Agent", "Mozilla/5.0")
.execute();
String location = res.header("Location");
res = Jsoup.connect("http://pchome.megatime.com.tw/stock/sid1101.html")
.timeout(0)
.data("is_check", "1")
.method(Method.POST)
.header("User-Agent", "Mozilla/5.0")
.header("Referer", location)
.execute();
Document doc = res.parse();
Elements links = doc.select("a");
for(Element e : links) {
System.out.println(e.text());
}
你会得到很多链接。