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

如何从bs4.element提取网页script中的image字段字符串值?

提取JavaScript数组中的image字段值

你可以通过提取脚本内容、解析JSON格式数据来获取所有image字段的值,具体实现如下:

完整代码

from bs4 import BeautifulSoup
import requests
import re
import json

def get_image_urls():
    url = 'https://dynasty-scans.com/chapters/liar_satsuki_can_see_death_ch28_6#6'
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    
    # 获取目标script标签的文本内容
    script_content = soup.find_all('script')[1].string
    
    # 正则匹配pages数组的JSON结构部分
    match = re.search(r'var pages = (\[.*?\]);', script_content, re.DOTALL)
    if match:
        # 替换HTML转义的双引号为标准格式
        json_str = match.group(1).replace('"', '"')
        # 解析为Python可操作的列表对象
        pages = json.loads(json_str)
        # 提取所有image字段的值
        image_urls = [page['image'] for page in pages]
        
        # 打印结果(也可根据需求保存或进一步处理)
        for img_url in image_urls:
            print(img_url)
        return image_urls

get_image_urls()

关键步骤说明

  • 提取脚本内容:通过soup.find_all('script')[1].string获取目标脚本的纯文本,跳过HTML标签结构
  • 正则匹配数组:用r'var pages = (\[.*?\]);'精准定位数组内容,re.DOTALL参数允许匹配跨换行的文本
  • 修复JSON格式:将HTML转义字符"替换为标准双引号,确保json.loads()能正常解析
  • 提取目标字段:将解析后的列表遍历,用列表推导式快速取出所有image字段的值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:48:14