gpt4 book ai didi

python - Beautifulsoup + HTML ...如何忽略几个h3类

转载 作者:行者123 更新时间:2023-12-04 04:08:33 24 4
gpt4 key购买 nike

我得到了以下代码:

from bs4 import BeautifulSoup
import requests
import re

source = requests.get('https://tienda.mimo.com.ar/mimo/junior/ropa-para-ninas.html').text

soup = BeautifulSoup(source, 'lxml')

for name_product, old_price, special_price in zip(soup.select('h3', class_='titprod'),
soup.select('span[id^="old-price"]'),
soup.select('span[id^="product-price"]')):
print(f'Name: {name_product.text.strip()} | Old price = {old_price.text.strip()} | Discounted price = {special_price.text.strip()}')

输出:

Name: Para acceder a la promoción seleccione el banco y la tarjeta de crédito que corresponda |  Old price = $ 295 | Discounted price = $ 236
Name: ¡Gracias por suscribirte al newsletter! | Old price = $ 990 | Discounted price = $ 743
Name: Elegí por talle | Old price = $ 2.300 | Discounted price = $ 1.725
Name: TAPABOCAS | Old price = $ 1.550 | Discounted price = $ 1.163
Name: REMERA JR TOWN | Old price = $ 2.990 | Discounted price = $ 2.243
Name: CAMISOLA NENA DELFI | Old price = $ 1.990 | Discounted price = $ 1.493

正如您所看到的,而不是采用正确的产品名称。它实际上采用了头两行标题上的内容 (名称:Para acceder a la promoción seleccione el banco y la tarjeta de crédito que corresponda......),它们是使用相同的 css_selector (titprod)。不知道如何深入到 LI 类(圆形黑色方 block )以获得产品的正确名称(圆形红色方 block )。因此,列表放错了位置,导致价格与每一行的产品名称不对应。

enter image description here

最佳答案

问题是您正在使用 select()方法不对。选择所有 <h3>class=titprod , 你需要写 soup.select('h3.titprod') .

class_=参数属于.find().find_all()函数(不使用 CSS 选择器)。

链接到 .find_all() bs4文档。

CSS selectors 的例子来自 bs4文档。

关于python - Beautifulsoup + HTML ...如何忽略几个h3类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62137941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com