所以我正试图在丝芙兰网站上刮擦香水的名称,品牌和价格。但我注意到,60种香水中只有前12种会出现(一页上有60种香水)。我试图打印出“item_container”的长度,它显示有60个,但是从第12项开始,一些具有不同结构的代码开始出现在那里。我已经检查了他们的HTML结构,我不明白为什么我的代码不适用于其余的。我还尝试将“类”更改为更具体的类,例如:
perfume_containers = soup.find_all('div', class_="css-12egk0t")
自
perfume_containers = soup.find_all('div', class_="css-ix8km1")
但它要么给我同样的结果,要么没有任何东西可以回到我身边。
这是我的代码,我只显示我提取品牌的部分,因为它太长了,无法显示整个内容。请发送一些帮助!谢谢!!
import pandas as pd
from bs4 import BeautifulSoup
import requests
source = requests.get('https://www.sephora.com/shop/perfume')
soup = BeautifulSoup(source.content, 'html.parser')
perfume_containers = soup.find_all('div', class_="css-12egk0t")
brands = []
for container in perfume_containers:
# The brand
brand = container.find('span', class_='css-ktoumz')
try:
brands.append(brand.text)
except:
continue
ibeautiful
相关分类