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

如何使用Python和BeautifulSoup提取网页JavaScript内的图片URL

解决方法

目标图片URL未写入静态HTML DOM节点,而是存储在页面内嵌JavaScript的window.INITIAL_REDUX_STATE全局变量中,因此用BeautifulSoup解析普通DOM节点无法获取,你注释的代码思路是可行的,补全缺失的步骤即可实现需求。

调整步骤

  • 导入正则模块re,用于匹配JS代码中的JSON片段
  • 给正则匹配添加re.DOTALL修饰符,确保可以匹配带换行的JSON内容
  • 解析JSON结构,提取商品图片字段

完整可运行代码

import json
import re
import requests
from bs4 import BeautifulSoup

headers = {
    'User-Agent': 'Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148'
}
testlink = 'https://lapa.co.za/kinder-en-tienerboeke/leer-my-lees-vlak-1-grootboek-9-tippie-en-die-vis'

r = requests.get(testlink, headers=headers)
# 匹配JS中的JSON数据块
match = re.search(r'window.INITIAL_REDUX_STATE=(\{.*?\});', r.text, re.DOTALL)
if match:
    json_str = match.group(1)
    data = json.loads(json_str)
    # 提取商品图片列表
    product_images = data['product']['product']['images']
    # 筛选700x700规格的目标图片
    target_img_url = None
    for img in product_images:
        if '700x700' in img['url']:
            target_img_url = img['url']
            break
    print(target_img_url)

运行说明

执行代码后会输出你需要的700x700规格的目标商品图片URL,若需要其他尺寸的图片,直接遍历product_images列表获取对应url属性即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:27:03