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

BeautifulSoup与正则定位含ImageBlockATF的script标签及JSON提取

目标Script标签正则定位方案

针对你在Python+BeautifulSoup爬取中,遇到的页面script标签过多、无法定位嵌入图片JSON数据的目标代码块的问题,可通过以下正则方案实现精准定位:

核心匹配逻辑

目标script块存在全页面唯一固定标识:内容以P.when('A').register("ImageBlockATF", function(A){起始,该字符串无重复,可作为匹配核心锚点,避免与其他无关script块混淆。

可直接复用的代码实现

import re
import requests

# 替换为实际请求获取的完整网页HTML源码字符串
html_content = "请求返回的页面文本"

# 编译匹配规则
target_script_pattern = re.compile(
    r'<script[^>]*>.*?P\.when\(\'A\'\)\.register\("ImageBlockATF",\s*function\(A\)\{.*?</script>',
    re.DOTALL
)

match_result = target_script_pattern.search(html_content)
if match_result:
    # 获取完整的目标script标签内容
    matched_content = match_result.group()
    print("已成功定位目标script标签")
else:
    print("未匹配到目标内容,请检查页面结构是否发生变动")

关键注意事项

  • 正则规则中对JS语法包含的特殊字符(句点、圆括号、单引号)做了转义处理,不会因代码本身的符号导致匹配失效
  • 采用非贪婪匹配逻辑,不会跨多个相邻script标签抓取无关内容
  • 必须传入re.DOTALL编译参数,否则无法识别跨多行书写的JS代码段
  • 定位到目标script内容后,可继续通过正则截取var data = 到对应分号之间的文本,将JS语法的单引号替换为标准JSON要求的双引号,即可直接解析为Python字典使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 03:06:07