获取html文档programmaticaly模拟Web浏览器

时间:2015-12-20 10:44:51

标签: java html parsing connection jsoup

问题是我正在尝试使用Jsoup类获取一个html文档,并且我意识到我使用Jsoup.connect获得的文档与我直接下载它的文档不完全相似浏览器。

例:
我想监控一篇文章的价格。我使用:

获取“Icecat”的html文档
Jsoup.connect( "http://icecat.es/es/p/sony/mdr-as200-blk/auriculares-0027242861022-Sony-MDR-AS200-18145805.html?ti=offers")
     .userAgent(userAgentString).timeout(5000)   
     .followRedirects(true).execute();

userAgentString :我试过不同的事情)

但是我收到的文件没有定价信息,带有信息的标签显示为“无效” 但是,如果我尝试使用任何网络浏览器下载它,页面会直接显示价格表。

加分问题

我试图获取谷歌的结果页面时遇到同样的行为。直接在网络浏览器https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#tbm=shop&q=Sony+MDR-AS200中输入是可以的,但是用java获取它我被重定向到谷歌的主页。我知道google的TOS,但我不想进行大规模的解析。

1 个答案:

答案 0 :(得分:3)

Jsoup不执行JavaScript。如果您尝试获取的站点使用一些AJAX调用并动态创建(部分)DOM,那么您将无法使用Jsoup。

您可以使用selenium webdriver,或尝试查找AJAX调用并直接触发它们。