问题是我正在尝试使用Jsoup类获取一个html文档,并且我意识到我使用Jsoup.connect
获得的文档与我直接下载它的文档不完全相似浏览器。
例:
我想监控一篇文章的价格。我使用:
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,但我不想进行大规模的解析。
答案 0 :(得分:3)
Jsoup不执行JavaScript。如果您尝试获取的站点使用一些AJAX调用并动态创建(部分)DOM,那么您将无法使用Jsoup。
您可以使用selenium webdriver,或尝试查找AJAX调用并直接触发它们。