查找类的两个元素之间的 td 范围 简单HTML DOM解析器



我正在尝试优化对网页抓取的解析。我可以看到我的粗略方法不可靠,因为我正在计算 class="descript" 和 class="data" 的对数,并且对这些进行一对一配对。但是我注意到我的一些数据库记录不匹配,并且看起来页面的某些部分会为每个class="descript"的任何一个实例提供多个(和未知的n个)class="data"。

例如,以这段代码(所有假名称和地址)为例,我想获取所有 tds 的 class="data" 介于两者之间

 <tr><td><span class="heading">Name And Address of Judgment Creditor (Plaintiff)</span></td></tr>

。和。。。

 <tr><td><span class="heading">Name And Address of Judgment Debtor(s) (Defendant(s))</span></td></tr>

以下是我想为单个原告获取所有三个被告及其地址的示例代码块:

<tr><td><span class="heading">Name And Address of Judgment Creditor (Plaintiff)</span></td></tr>
<tr><td class="data">FAKE NAME<br>
501 N.W. STUPID STREET<br>
JERKY BOY, FL 12345<br>
</td></tr>
<tr><td><span class="heading">Name And Address of Judgment Debtor(s (Defendant(s))</span></td></tr>
<tr><td class="data">
BIMBO, IM A<br>2001 11TH AVENUE EAST, STE 32<br>LAKE CLEAR, FL 33333 </td></tr>
<tr><td class="data">
ADVANCED PAIN & SPINAL REHABILITATION, INC.<br>2001 10TH AVENUE NORTH, SUITE 2<br>LAKE WORTH, FL 33461 </td></tr>
<tr><td class="data">10TH AVE. HEALTH CARE CENTER, INC.<br>2001 10TH AVENUE NORTH, SUITE 2<br>LAKE WORTH, FL 33461 </td></tr>

如果您决定使用 DomDocument,在这里您可以找到 Xpath,它选择了您想要的项目(为了便于阅读,我将其拆分

):
//td[@class="data"]
    [following::td/span[@class="heading"]  and  preceding::td/span[@class="heading"]]

最新更新