我正在尝试使用Jsoup来解析网址http://www.threadflip.com/shop/search/john%20hardy
中的htmlJsoup希望只从行
获取数据<![CDATA[ window.gon= ..............
有谁知道为什么会这样?
Document doc = Jsoup.connect("http://www.threadflip.com/shop/search/john%20hardy").get();
答案 0 :(得分:1)
您尝试解析的网站通过AJAX调用加载其大部分内容异步。 JSoup不解释Javascript,因此不像浏览器那样。似乎商店通过调用他们的api填充:
<form>
<label for='qpInputdata'>No Selection</label>
<input id="qpInputdata" class="form-control
name="xCaasType" ng-model="fData.xNone" type="radio"
ng-value="true" value="true">
<label for='qpInputdata'>Select This One</label>
<input id="qpInputdata" class="form-control
name="xCaasType" ng-model="fData.xNotNone" type="radio"
ng-value="true" value="true">
</form>
因此,您可能需要直接加载API Url才能阅读所需内容。请注意,响应是JSON,而不是HTML,因此JSoup html解析器在这里没有多大帮助。但是有很棒的JSON库可用。我使用JSON-Simple。
或者,您可以切换到实际远程控制真实浏览器的Selenium webdriver。这应该可以轻松访问页面中的所有项目。