动态内容解析

时间:2014-01-21 07:23:09

标签: java javascript xpath jsoup web-crawler

我正在处理内容解析我为此执行了示例程序我已经采用了示例链接 请访问以下链接

http://www.equitymaster.com/stockquotes/sector.asp?sector=0%2CSOFTL&utm_source=top-menu&utm_medium=website&utm_campaign=performance&utm_content=key-sector

Click Here

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

BSE和NSE不是我的确切要求,我只是以示例为例。上面的链接是在表中开发的,它们不用于id和类。在我的例子中,我使用XPath

解析数据

这是我的Xpath

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

我选择并解析它工作正常。如果他们改变了网站结构,我的程序将无法正常运行,这将是一个问题。告诉我任何其他方式动态解析数据并能够存储在数据库中。即使他们更改了网页结构,我也会根据条件显示结果我为此使用此JSOUP api。告诉我任何其他ApI为这类要求提供最佳支持

1 个答案:

答案 0 :(得分:1)

如果您尝试解析没有任何明确ID /类的页面来选择节点,则必须尝试依赖其他内容。重新定义整棵树确实是最薄弱的方式,如果添加/更改任何内容,一切都会崩溃。

您可以尝试依赖颜色://table[@bgcolor="#c9d0e0"],“获取更多信息”字段://table[tr/td//text()="GET MORE INFO"],每行都有“更多信息”://table[.//td//text()="&nbspMore Info&nbsp"] ... < / p>

我们的想法是找到一些理想上独一无二的东西(如果找不到任何独特的标准,table[color condition selecting a few tables][2]在整个树上行走仍然更强),每次都会出现,并将其用作身份。