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

如何用Python正则表达式从字符串中提取指定图片URL?

解决从JavaScript代码中提取亚马逊图片URL的问题

修正正则表达式

你的正则匹配逻辑存在两个核心问题:一是未限制URL的边界(比如忽略了JS中URL通常被引号包裹的特性),二是未转义URL里的.字符(正则中.是通配符,会匹配任意字符),导致把周围的JS代码也一并匹配进来。可以改用以下正则精准提取目标URL:

import re

# 假设str(new_bs)是包含JS代码的原始HTML字符串
pattern = r'"https://m.media-amazon.com/images/I/[^"]*_AC_SL1500_\.jpg"'
raw_matches = re.findall(pattern, str(new_bs))
# 去除首尾的双引号,得到纯URL
clean_urls = [url.strip('"') for url in raw_matches]
# 截取前9个目标URL
target_urls = clean_urls[:9]

关键修改说明

  • [^"]*:匹配除双引号外的任意字符,确保只捕获引号内部的URL内容,避免混入JS代码
  • \.jpg:转义.字符,让正则匹配URL里的实际点号,而非任意字符
  • 双引号包裹匹配规则:利用JS中URL通常用双引号定义的特性,精准定位合法URL

兼容单引号场景的优化

如果目标URL在JS中是用单引号包裹的,可以改用兼容单双引号的正则:

pattern = r'["\']https://m.media-amazon.com/images/I/[^"\']*_AC_SL1500_\.jpg["\']'

后续处理时同样需要去除首尾的引号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 09:50:25