Web浏览器显示正确的值但是当我使用Jsoup时,HTML没有值

时间:2012-01-27 22:11:51

标签: java html html-parsing web-scraping jsoup

我正在尝试从网站获取某些值,但这些值仅在我使用浏览器时显示,例如Mozilla。当我使用Jsoup时,我可以从网站上获取HTML但没有值,只有标签。

这是我要解析的网站:

http://www.submarinoviagens.com.br/Passagens/selecionarvoo?Origem=nat&Destino=mia&Data=05/11/2012&Hora=&Origem=mia&Destino=nat&Data=09/11/2012&Hora=&NumADT=1&NumCHD=0&NumINF=0&SomenteDireto=0&Cia=&SelCabin=&utm_source=&utm_medium=&utm_campaign=&CPId=

我正在尝试获取这些span标记内显示的值:

如果我从网络浏览器访问以前的网址,我可以看到以下值:'','R $ 2634,22'和'R $ 2634,22',但是当我使用以下代码时,值会消失。

URL url = new URL("http://www.submarinoviagens.com.br/Passagens/selecionarvoo?Origem=nat&Destino=mia&Data=05/11/2012&Hora=&Origem=mia&Destino=nat"+
            "&Data=09/11/2012&Hora=&NumADT=1&NumCHD=0&NumINF=0&SomenteDireto=0&Cia=&SelCabin=&utm_source=&utm_medium=&utm_campaign=&CPId=");
Document doc =  Jsoup.parse(url, 100000);
String title = doc.title(); 
System.out.println(doc.toString());

如果我尝试通过Mozilla Firefox查看源代码,那么值也会消失。 但如果我使用firebug插件,我可以看到它们。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

网站使用JavaScript填充您要解析的所有值。您必须使用可以在页面内计算javascript的库。不确定是否有一个。

其他人?

答案 1 :(得分:0)

Htmlunit是一个无头浏览器,可以呈现Javascript,并且应该能够正确显示此页面。