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

Python网页抓取:通过固定关键词Position提取动态文本

基于固定关键词提取目标文本的实现方案

你的思路完全可行——通过固定关键词"Position"定位节点,再提取其后续文本是这类网页抓取场景的常用解法,下面结合你的需求给出具体实现:

方法一:使用BeautifulSoup直接处理

利用BeautifulSoup的节点查找和兄弟节点定位功能,无需转成lxml dom:

from bs4 import BeautifulSoup
import requests

url = "https://www.firmenabc.at/austrian-airlines-ag_EES"
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')

# 定位包含"Position"的strong标签
position_tag = soup.find('strong', string='Position')
if position_tag:
    # 跳过<br>节点,获取第一个非空的后续文本
    target_text = position_tag.find_next_sibling(text=True).strip()
    print(target_text)
else:
    print("未找到关键词Position")

方法二:使用XPath(基于你现有代码修改)

如果你偏好XPath语法,可调整表达式定位目标文本:

from bs4 import BeautifulSoup
import requests
from lxml import etree

url = "https://www.firmenabc.at/austrian-airlines-ag_EES"
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')
dom = etree.HTML(str(soup))

# XPath表达式:找到Position的strong标签,取第一个非空的后续文本
target_text = dom.xpath('//strong[text()="Position"]/following-sibling::text()[normalize-space()][1]')
if target_text:
    print(target_text[0].strip())
else:
    print("未找到关键词Position")

关键说明

  • find_next_sibling(text=True):只筛选文本节点,自动跳过<br>这类标签节点
  • XPath中的normalize-space():过滤掉空白文本,确保取到的是有效目标内容
  • 增加了判断逻辑,避免因找不到关键词导致程序报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:35:19