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

使用Python/BeautifulSoup爬取商品图片失败,问题出在哪?

解决Python爬取威士忌交易所商品图片的问题

你的代码存在两个核心问题:

  • 错误地使用.text获取图片地址:<img>标签的图片链接存储在src属性中,而非标签的文本内容
  • 未设置请求头模拟浏览器访问:部分网站会拦截无标识的爬虫请求,导致返回的页面结构与实际不符,无法找到目标元素

正确实现代码

import requests
from bs4 import BeautifulSoup

# 设置请求头,模拟浏览器访问
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}

target_url = "https://www.thewhiskyexchange.com/p/29388/hibiki-harmony"

try:
    # 发送请求获取页面内容
    response = requests.get(target_url, headers=headers)
    # 检查请求是否成功(状态码200)
    response.raise_for_status()
    
    # 解析HTML页面
    soup = BeautifulSoup(response.text, 'html.parser')
    
    # 定位目标img标签并提取src属性
    img_element = soup.find("img", class_="product-main__image")
    if img_element:
        image_url = img_element.get('src')
        print(f"成功获取图片地址:{image_url}")
    else:
        print("未找到目标图片元素")
except Exception as e:
    print(f"爬取过程出错:{str(e)}")

关键修改说明

  1. 提取属性而非文本:使用img_element.get('src')直接获取<img>标签的src属性值,这是图片的实际链接
  2. 添加请求头:通过headers参数模拟真实浏览器的请求标识,避免被网站的反爬机制拦截
  3. 异常处理优化:增加response.raise_for_status()捕获请求失败的情况,便于排查网络问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 03:35:25