动态内容解析

问题描述:

我与内容解析工作,我执行这个示例程序我已经采取了样本连接 请访问以下链接动态内容解析

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对象中。

疯牛病和NSE不是我的确切要求,只是我采取的示例。上面的链接是在表格中开发的,它们没有使用id和类。在我的例子中,我使用XPath

解析数据,这是我的Xpath

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

我选择解析它工作正常。如果他们更改网站结构我的程序将无法正常工作,这里是未来的问题。告诉我任何其他方式动态解析数据并能够存储在数据库中。即使他们更改了网页结构我也用这个JSOUP API来显示结果。告诉我任何其他ApI为这种类型的需求提供最好的支持

如果你试图解析一个页面没有任何明确的id/class来选择你的节点,你必须尝试和依赖别的东西。重新定义整棵树确实是最弱的方法,如果有任何东西被添加/改变,一切都将崩溃。

你可以尝试依靠颜色://table[@bgcolor="#c9d0e0"],“查看更多信息”字段://table[tr/td//text()="GET MORE INFO"],“更多信息”上有每行://table[.//td//text()="&nbspMore Info&nbsp"] ...

的想法是找到理想的唯一(如果你找不到任何独特的标准,table[color condition selecting a few tables][2]仍然走在整棵树上),每一次都会出现,并用它作为ID。

+0

用颜色选择它正在工作罚款表[bgcolor =#c9d0e0]。为了更好的事情,我尝试了以下元素elem = doc.select(“table:contains(SCRIPT)”);它显示父表也how.how选择特定的表 – sarath

+0

真的不知道你的意思...这是什么“SCRIPT”?如果这选择父节点,你可以通过'node // table'来查看所有附表,但我相信你已经知道 – Robin

+0

脚本表头 – sarath