Java 使用jsoup解析伦敦证券交易所页面

Java 使用jsoup解析伦敦证券交易所页面,java,parsing,web,web-scraping,jsoup,Java,Parsing,Web,Web Scraping,Jsoup,我目前正在尝试从以下链接获取数据 为了能够收到损益表、资产负债表等项下的所有信息,但我未能获得表名以获取每个类别下的元素。有人知道如何使用Jsoup实现这一点吗 试一试{ 最终文件文件=Jsoup.connecthttps://www.londonstockexchange.com/stock/RIO/rio-tinto-plc/fundamentals.get; 元素报头=document.selectth.table-header-th; 对于元素行:document.selecttable

我目前正在尝试从以下链接获取数据

为了能够收到损益表、资产负债表等项下的所有信息,但我未能获得表名以获取每个类别下的元素。有人知道如何使用Jsoup实现这一点吗

试一试{ 最终文件文件=Jsoup.connecthttps://www.londonstockexchange.com/stock/RIO/rio-tinto-plc/fundamentals.get; 元素报头=document.selectth.table-header-th; 对于元素行:document.selecttable.table-header{ System.out.printlnrow.selecttable:nth-of-type2.text; } }//尝试结束 捕获异常{ 例如,打印跟踪; }
该页的数据已嵌入。。或者换一种说法,它是一个单页应用程序,而您在错误的位置查找数据

另一件事:在我对这个特殊的web scrape会话进行了广泛的研究之后,数据中嵌入了一条注释

此数据由富时罗素数据解决方案提供

您可能希望更直接地获取此数据

在我进入这一阶段之前,尽管我成功地提出了一个非常接近的JsonSoup版本,但需要付出巨大的努力才能获得您想要的数据。因为我真的不知道你是否只想看头条新闻,这是我在决定它是否足够接近你来接管和改编它之前所做的

还有一点需要注意:我正在使用Jayway的JsonPath从JSON中提取数据:

导入com.jayway.jsonpath.jsonpath; 导入org.jsoup.jsoup; 导入org.jsoup.nodes.Document; 导入org.jsoup.select.Elements; 导入java.util.List; 公营伦敦证券交易所{ 公共静态最终字符串URL=https://www.londonstockexchange.com/stock/RIO/rio-tinto-plc/fundamentals; 公共静态无效字符串[]args{ 试一试{ 最终文档文档=Jsoup.connectURL .ignoreHttpErrorstrue .ignoreContentTypetrue 收到 元素jsonTag=document.selectng-lseg-state; String data=jsonTag.get0.data.replace&q;,\; System.out.printlndata; //此处的第二个数组可能包含您想要的内容: 列出relevantData=JsonPath.readdata,$…body.components[*].status.childComponents[*].content; //这些返回深度嵌套的数据结构: //List fundamentals=JsonPath.readdata,$…body.components[*].status.childComponents[*].content.basicals; //列出titleBalanceSheet=JsonPath.readdata,$…body.components[*].status.childComponents[*].content.titleBalanceSheet; //列出titleRatios=JsonPath.readdata,$…body.components[*].status.childComponents[*].content.titleRatios; //处理数据 系统输出打印相关数据; } 捕获异常{ 例如,打印跟踪; } } } 如果您使用的是一个好的IDEIntelliJ想法,那么您可以获取JSON,从控制台输出复制它,将它粘贴到一个.JSON临时文件中,并立即使用Code->Reformat Code对其进行格式化,这将以最小的努力为您很好地布局它。然后,只需按照要提取的数据位的键进行操作。。。提示:在JSON中找到您想要的数据值,然后从那里向后构建相关的JsonPath,就像DOM导航一样


祝你好运

嗨,罗布,非常感谢你的帮助。非常感谢。我利用你的建议设法提取了相当多的数据。我可以看到所有的相关信息出来,这是伟大的!但是,我找不到Jway库。我使用Netbeans作为IDE。有什么建议吗?非常感谢Demis从github发行版下载jar,或者在这里查看关于使用构建工具gradle的内容,该工具简化了添加库依赖项的过程。非常感谢Rob。你太棒了。