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

网页抓取问题:已获取.external-link元素,无法抓取其前置信息

网页抓取:获取姓名前方的对应信息

问题背景

  • 正在抓取巴西众议院制宪会议参议员成员页面,已通过选择器.external-link成功提取姓名(对应图中黄色圈选内容),但无法获取姓名前方的目标信息(对应图中红色圈选内容)。

解决方案

1. 先分析DOM结构

打开浏览器开发者工具,查看姓名元素(.external-link)与目标信息的层级关系:

  • 多数情况下,两者会被包裹在同一个父容器(如<li>、<div>或<span>)内;
  • 目标信息可能是姓名元素的前置兄弟节点,或是父容器内的文本片段。

2. 针对性提取代码示例(以Python+BeautifulSoup为例)

情况1:目标信息与姓名在同一父容器的文本中

如果父容器文本格式为「目标信息 - 姓名」,可直接拆分文本:

from bs4 import BeautifulSoup
import requests

url = "目标网站的URL"
resp = requests.get(url)
soup = BeautifulSoup(resp.text, "html.parser")

for link in soup.select(".external-link"):
    parent_text = link.parent.get_text(strip=True)
    # 按分隔符拆分,提取目标信息和姓名
    prefix_info, name = parent_text.split(" - ", 1)
    print(f"前置信息: {prefix_info}, 姓名: {name}")
情况2:目标信息是独立的前置兄弟节点

如果目标信息是单独的元素节点,使用previous_sibling定位:

for link in soup.select(".external-link"):
    prefix_element = link.previous_sibling
    if prefix_element:
        prefix_info = prefix_element.strip()
        name = link.get_text(strip=True)
        print(f"前置信息: {prefix_info}, 姓名: {name}")

3. 补充说明

如果目标信息是CSS伪元素(如::before),则需要从页面的CSS样式中提取,或使用浏览器渲染引擎(如Selenium)获取渲染后的文本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 09:01:02