Java 带有插件的Jsoup

Java 带有插件的Jsoup,java,web-scraping,jsoup,Java,Web Scraping,Jsoup,我使用Jsoup从不同的商店中获取一些在线数据,但我很难弄清楚如何以编程方式复制我作为用户所做的工作。要在登录后手动获取数据,用户必须从弹出窗口中选择一个商店 据我所知,树不是硬编码到站点中的,而是在计算机与服务器交互时以交互方式构建的。在查看页面源中查找表时,没有条目。当我看到HTML时,它似乎来自FancyTree插件 从跟踪我在开发者工具-网络上的活动可以看出,下一步是GET请求,它不会更改URL,因此我不确定我的商店选择是如何传输的 关于如何让Jsoup或Java以编程方式与该表交互的任

我使用Jsoup从不同的商店中获取一些在线数据,但我很难弄清楚如何以编程方式复制我作为用户所做的工作。要在登录后手动获取数据,用户必须从弹出窗口中选择一个商店

据我所知,树不是硬编码到站点中的,而是在计算机与服务器交互时以交互方式构建的。在查看页面源中查找表时,没有条目。当我看到HTML时,它似乎来自FancyTree插件

从跟踪我在开发者工具-网络上的活动可以看出,下一步是GET请求,它不会更改URL,因此我不确定我的商店选择是如何传输的


关于如何让Jsoup或Java以编程方式与该表交互的任何建议都将非常有用,谢谢

Jsoup只能解析原始源文件,而不能解析DOM。为了解析DOM,您需要使用如下内容呈现页面。然后可以使用Jsoup解析html内容

// load page using HTML Unit and fire scripts
WebClient webClient = new WebClient();
HtmlPage myPage = webClient.getPage(myURL);

// convert page to generated HTML and convert to document
doc = Jsoup.parse(myPage.asXml());

// do something with html content
System.out.println(doc.html());

// clean up resources        
webClient.close();

请参阅。

DOM现在太动态了,不希望只解析html就能得到任何有用的东西。您需要使用像Selenium这样的工具来远程控制浏览器。这样,您可以要求它找到按钮和下拉列表,选择正确的元素,正确执行JS,然后在一切正常时向浏览器询问DOMS的当前状态。然后可以使用jsoup解析它。如果这是一个使用Linux的服务器端应用程序,您仍然可以使用xvfb做任何事情。如果是这样的话,您可以提供一些有用的提示。谢谢,如果我可以上传评论,我会给它一个上传投票!