You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从属性无差异的HTML元素中抓取原被告数据?

解决原被告数据爬取的区分问题

问题分析

你当前的代码中,find("td", class_ = "has-no-border")只会返回页面中第一个匹配该类名的元素,因此原被告都获取到了原告的数据。针对HTML结构中元素属性一致但文本标签明确的情况,完全可以通过文本内容或专属属性来区分定位。

解决方案

这里提供两种可靠的实现方式:

方式一:通过<th>的文本定位对应<td>

利用每个数据行中<th>的文本标签(如Plaintiff:/Defendant:),先定位到目标<th>,再获取其相邻的<td>元素:

from bs4 import BeautifulSoup
import requests

html_text = requests.get("https://dockets.justia.com/docket/puerto-rico/prdce/3:2023cv01127/175963").text
soup = BeautifulSoup(html_text, "lxml")
cases = soup.find_all("div", class_ = "wrapper jcard has-padding-30 blocks has-no-bottom-padding")

for case in cases:
    case_title = case.find("div", class_ = "title-wrapper").text.strip()
    # 通过th文本定位原告对应的td
    case_plaintiff = case.find('th', string='Plaintiff:').find_next_sibling('td').text.strip()
    # 通过th文本定位被告对应的td
    case_defendant = case.find('th', string='Defendant:').find_next_sibling('td').text.strip()

    print(f"Case Title: {case_title}")
    print(f"Plaintiffs: {case_plaintiff}")
    print(f"Defendants: {case_defendant}")

方式二:利用data-th属性直接定位

观察HTML结构可知,<td>元素带有data-th属性,其值与对应<th>的文本一致(如Plaintiff/Defendant),可以直接通过该属性精准匹配:

from bs4 import BeautifulSoup
import requests

html_text = requests.get("https://dockets.justia.com/docket/puerto-rico/prdce/3:2023cv01127/175963").text
soup = BeautifulSoup(html_text, "lxml")
cases = soup.find_all("div", class_ = "wrapper jcard has-padding-30 blocks has-no-bottom-padding")

for case in cases:
    case_title = case.find("div", class_ = "title-wrapper").text.strip()
    # 通过data-th属性定位原告
    case_plaintiff = case.find('td', {'data-th': 'Plaintiff'}).text.strip()
    # 通过data-th属性定位被告
    case_defendant = case.find('td', {'data-th': 'Defendant'}).text.strip()

    print(f"Case Title: {case_title}")
    print(f"Plaintiffs: {case_plaintiff}")
    print(f"Defendants: {case_defendant}")

说明

两种方式都能精准区分原被告对应的元素,其中方式二利用专属属性定位,稳定性更强(避免文本标签出现格式变化的影响)。

内容的提问来源于stack exchange,提问作者PressMeister

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 02:22:02