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

如何在Python中用regex从带空格的网页爬取字符串中提取子串?

实现方案

原有代码失败原因

你写的正则规则中使用了|作为匹配分隔符,但目标字符串中不存在该字符,同时匹配规则和目标内容的结构完全不匹配,因此无法得到正确结果。

最优实现代码

import re
import pandas as pd

# s = 你爬取得到的待处理长字符串
s = """\n    display:block\u0022\u003E\n                                  div class= span_6\u0022\u003E\n                                     li class=\u0022borderbottom padleft pad20 nomargin\u0022\u003E\n   span\u003E1. XXXXXXXX\/span\u003E\n                                strong class=\u0022floatright\u0022\u003EAAAAAAAA\/strong\u003E\n       \/li\u003E\n                                                        li class=\u0022borderbottom padleft pad20 nomargin\u0022\u003E\n   span\u003E2. YYYYYYYY\/span\u003E\n                                strong class=\u0022floatright\u0022\u003EBBBBBBBB\/strong\u003E\n"""

# 提取键列表list1
pattern_key = r'span\u003E\d+\.\s(.*?)\/span'
list1 = re.findall(pattern_key, s)

# 提取值列表list2
pattern_value = r'strong class=\u0022floatright\u0022\u003E(.*?)\/strong'
list2 = re.findall(pattern_value, s)

# 生成你需要的字典格式
res_dict = dict(zip(list1, list2))

# 存入DataFrame,可根据实际需求调整列名
df = pd.DataFrame({
    '字段名称': list1,
    '字段值': list2
})

# 测试输出
print(list1)
print(list2)
print(res_dict)
print(df)

调整说明

如果你的待处理字符串已经完成了Unicode转义解码,可将正则里的\u003E替换为>,\u0022替换为"即可正常匹配。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:48:02