python - 如何使用 Beautifulsoup 从网站上获取产品价格?
问题描述
全部。我正在尝试从 StockX 中提取这款运动鞋的最新出价,但由于某种原因,sneaker_price 出现空白,因此出现错误“IndexError:list index out of range”。有人可以帮忙吗?:
from bs4 import BeautifulSoup
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://stockx.com/air-jordan-6-retro-travis-scott")
soup = BeautifulSoup(driver.page_source,"lxml")
driver.quit()
sneaker_price = soup.select("div.en-us stat-value stat-small")[0]
解决方案
试试 CSS 选择器div.en-us.stat-value.stat-small
:
sneaker_price = soup.select("div.en-us.stat-value.stat-small")[0]
print(sneaker_price.text)
印刷:
€523
注意:如果您获得验证码页面,请尝试指定更多 HTTP 标头和/或 Cookie。例如:
import requests
from bs4 import BeautifulSoup
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0',
'Accept-Language': 'en-US,en;q=0.5'
}
cookies = {
'stockx_homepage': "sneakers",
}
soup = BeautifulSoup(requests.get("https://stockx.com/air-jordan-6-retro-travis-scott", headers=headers, cookies=cookies).content,"lxml")
sneaker_price = soup.select("div.en-us.stat-value.stat-small")[0]
print(sneaker_price.text)
推荐阅读
- php - laravel 似乎继承了环境变量
- c# - 非 WCF TCP 服务器的 WCF 绑定
- javascript - 从 Java 客户端服务器应用程序打开本地 Internet Explorer
- sql - 循环遍历 SSIS 包中的多行
- node.js - 规则“缩进”的配置无效:值“[object Object]”不应具有其他属性
- python - 为标题栏设置自定义颜色
- c# - 转换为新的 csproj 后,Roslyn 分析器无法工作
- django - django 2 在传递 url 时没有反向 macth
- c# - 如何在一次 AJAX 调用中返回两个部分
- java - JLabel 不显示,除非与 mouselistener 一起使用