Java 动态内容解析

Java 动态内容解析,java,javascript,xpath,jsoup,web-crawler,Java,Javascript,Xpath,Jsoup,Web Crawler,我正在进行内容解析,为此我执行了示例程序,并获取了一个示例链接 请访问以下链接 或 在上面的链接中,我解析了表数据并将其存储到java对象中 疯牛病和非特异性烯醇化酶不是我的确切要求,只是我举了个例子。上面的链接是在表中开发的,它们不用于id和类。在我的示例中,我使用XPath解析数据 这是我的Xpath /html/body/table[4]/tbody/tr/td/table[2]/tbody/tr[2]/td[2]/font/table[2] 我选择并解析了它,它工作得很好。如果他们

我正在进行内容解析,为此我执行了示例程序,并获取了一个示例链接 请访问以下链接

在上面的链接中,我解析了表数据并将其存储到java对象中

疯牛病和非特异性烯醇化酶不是我的确切要求,只是我举了个例子。上面的链接是在表中开发的,它们不用于id和类。在我的示例中,我使用XPath解析数据

这是我的Xpath

/html/body/table[4]/tbody/tr/td/table[2]/tbody/tr[2]/td[2]/font/table[2]

我选择并解析了它,它工作得很好。如果他们改变了网站结构,那么将来会出现一个问题我的程序肯定无法运行。告诉我动态解析数据并能够存储在数据库中的其他方法。根据条件显示结果,即使他们更改了我为此使用的JSOUP api的网页结构。告诉我任何其他为此类需求提供最佳支持的ApI如果您试图解析没有任何明确id/类的页面来选择节点,那么您必须尝试并依赖其他方法。重新定义整棵树确实是最薄弱的方法,如果添加/更改任何内容,所有内容都将崩溃

您可以尝试使用颜色:
//表[@bgcolor=“#c9d0e0”]
,“获取更多信息”字段:
//表[tr/td//text()=“获取更多信息”]
,每行都有“更多信息”:
//表[.//td//text()=“ More INFO”]


我们的想法是找到理想的唯一性(如果你找不到任何唯一的标准,
table[选择几个表的颜色条件][2]
在整个树中更强大),每次都呈现,并将其用作id。

使用颜色选择它可以很好地工作表[bgcolor=#c9d0e0]为了更好,我尝试了以下元素elem=doc.select(“table:contains(SCRIPT)”);它也显示父表。如何选择特定的表真的不知道你的意思。。。这是什么“剧本”?如果选择父节点,您可以执行
node//table
以查看所附的所有表,但我相信您已经知道我的意思是使用scriptor bse或nse进行选择