首页 > 解决方案 > 从 webscrape Python 发出挑选价格

问题描述

遵循指南但仍无法从网站上选择价格 - 我想选择产品名称和产品价格。

我可以选择控制台中出现的名称=。价格返回“无”。请不要输入错误,我不知道我哪里出错了。

page = requests.get('https://www.wickes.co.uk/search?text=brick')
soup = BeautifulSoup(page.content, 'html.parser')
all_bricks = soup.find(class_='products-list products-list-v2')

items = all_bricks.find(class_='card product-card')
items_name = all_bricks.find(class_='product-card__title product-card__title-v2')

price_box = items.find("div", attrs={"class": "product-card__price-value "})
price = price_box
print (price)

标签: pythonwebscreen-scraping

解决方案


那么你有两个问题:

  1. 您在类名中添加了额外的空格。BeautifulSoup旨在修剪 html DOM 中的额外空格。
  2. 你没有.text用来拿回价格。
from bs4 import BeautifulSoup
import requests

page = requests.get('https://www.wickes.co.uk/search?text=brick')
soup = BeautifulSoup(page.content, 'html.parser')
all_bricks = soup.find(class_='products-list products-list-v2')

items = all_bricks.find(class_='card product-card')
items_name = all_bricks.find(class_='product-card__title product-card__title-v2')

price_box = items.find("div", attrs={"class": "product-card__price-value"}) #Extra space removed
price = price_box.text #adding ".text"
print (price)

推荐阅读