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

Beautiful Soup爬取Ebay价格时USD自动转换为新台币问题求解

问题原因

eBay服务端会根据请求携带的请求头信息、IP归属地、Cookie配置自动适配返回的站点区域与计价币种,你直接通过默认配置的requests发起请求时,会被eBay判定为你当前所在的地区,因此返回NT$计价的结果,浏览器访问时因为有本地存储的地域、币种配置Cookie才会显示USD价格。

解决方案

你可以通过以下配置修正返回的币种:

  • 给requests请求添加模拟浏览器的请求头,指定Accept-Language为美国英语,避免eBay判定为非美区客户端,同时也能降低被反爬策略拦截的概率
  • 在请求的eBay URL末尾追加&gl=US&currency=USD参数,强制指定站点区域为美国、计价币种为美元
  • 如上述方法仍不生效,可在请求头中添加币种配置Cookie,强制锁定返回USD价格

修改后的参考代码如下:

import requests
from bs4 import BeautifulSoup as bs

# 配置自定义请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
    "Accept-Language": "en-US,en;q=0.9",
    # 如需要可额外加Cookie配置
    # "Cookie": "ebay=%26cur%3DUSD;"
}

# URL追加强制美区、美元参数
url = 'https://www.ebay.com/sch/i.html?_from=R40&_nkw=dodge+viper&_sacat=0&_sop=20&gl=US&currency=USD'
page = requests.get(url, headers=headers)

soup = bs(page.content, 'html.parser')
prices = soup.find_all('span', class_='s-item__price')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:36:03