【发布时间】:2016-05-21 04:07:55
【问题描述】:
我正在编写用于检测网页中匹配标签模式的代码。这是示例。
<body>
<table width="200" border="1">
<tr>
<td>Name</td>
<td>Place</td>
<td>Animal</td>
</tr>
<p>hello World</p>
<tr>
<td>Jack</td>
<td>New york</td>
<td>Lion</td>
</tr>
<b>Code Works</b>
<tr>
<td>George</td>
<td>Sydney</td>
<td>Tiger</td>
</tr>
<tr>
<td>Tina</td>
<td>Delhi</td>
<td>Cat</td>
</tr>
</table>
<table>
<tbody>
<tr>
<td> </td>
<td>
<a href="/cgi-bin/site_searcher.cgi?START=20&SEARCHTERM=asia&SID=&SEARCH=1&BOOLEAN=&CAT=">1</a>
<a href="/cgi-bin/site_searcher.cgi?START=20&SEARCHTERM=asia&SID=&SEARCH=1&BOOLEAN=&CAT=">2</a>
<a href="/cgi-bin/site_searcher.cgi?START=40&SEARCHTERM=asia&SID=&SEARCH=1&BOOLEAN=&CAT=">3</a>
<a href="/cgi-bin/site_searcher.cgi?START=60&SEARCHTERM=asia&SID=&SEARCH=1&BOOLEAN=&CAT=">4</a>
<a href="/cgi-bin/site_searcher.cgi?START=80&SEARCHTERM=asia&SID=&SEARCH=1&BOOLEAN=&CAT=">5</a>
</td>
</tr>
</tbody>
</table>
</body>
对于上面的标签模式,我需要找到重复出现的标签。并丢弃那些不在模式中的标签 b 和 p。对于第一个表标签 tr 和 td 正在发生。对于第二个表“a”标签重复。 这是我到目前为止所做的:
- 使用 Jsoup 解析为 DOM 树。
- 然后使用节点访问者类遍历树。使用 head 和 tail 方法,我可以进入和退出标签。
但我对如何进一步进行感到困惑。 注意:标签模式不是固定的。标签模式会因网页结构而异。任何形式的帮助将不胜感激。
【问题讨论】:
-
@saka1029 对于上面的例子,tr 标签包括第一个表的 td 标签。对于第二个表'a'标签
-
@saka1029 正文仅包含 2 个表。其余元素也相应嵌套。
-
请分享您的代码。
-
你能解释一下什么是“重复出现的标签”吗?使用 POST 中的 html 代码可以准确地确定重复出现的标签是什么?
-
@swapnilgandhi 查看我的回答:stackoverflow.com/a/35336670/363573