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

如何使用Python爬取亚马逊商品信息并处理书名、价格格式?

亚马逊商品爬取实现方案

需求对应处理逻辑

  • 书名去括号后缀:使用正则匹配末尾的括号及内部内容,直接替换为空即可
  • 作者提取:亚马逊畅销榜商品的作者信息对应选择器为span.a-size-base.a-color-secondary,按需加异常捕获避免空值报错
  • 价格提取后去美元符号:拿到价格文本后直接替换$符号即可,如需数值格式可额外转float类型

修改后完整代码

from bs4 import BeautifulSoup
import pandas as pd
import requests
import re  # 导入正则模块处理书名

# 加请求头避免亚马逊拦截
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}
url = '你的亚马逊页面链接'
html_content = requests.get(url, headers=headers).text
soup = BeautifulSoup(html_content, "html.parser")  # 指定解析器避免运行警告

rate = []

for x in soup.select("li.zg-item-immersion"):
    item = {}
    # 处理书名:去除末尾括号及内部内容
    raw_name = x.select_one('a').get_text(strip=True)
    item['name'] = re.sub(r'\s*\(.*\)$', '', raw_name).strip()
    
    item['rank'] = x.select_one('span span').get_text(strip=True)
    
    # 提取作者
    try:
        item['author'] = x.select_one('span.a-size-base.a-color-secondary').get_text(strip=True)
    except:
        item['author'] = ''  # 无作者信息时留空
    
    # 提取价格并去除美元符号
    try:
        raw_price = x.select_one('span.p13n-sc-price').get_text(strip=True)
        item['price'] = raw_price.replace('$', '').strip()
        # 如需数值类型可打开下一行注释
        # item['price'] = float(item['price'])
    except:
        item['price'] = ''  # 无价格信息时留空

    rate.append(item)
        
print(rate)

注意事项

  • 如果页面结构有变动,可自行右键目标元素选择「检查」,复制对应元素的CSS选择器替换代码中对应的选择器即可
  • 频繁请求亚马逊容易触发反爬,可适当添加时间间隔控制请求频率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:24:02