我正在尝试从Beautifulsoup的以下网站导入所有优惠。
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as uReq
import requests
my_url='https://www.promobit.com.br/promocoes/playstation-4/s/'
uclient=uReq(my_url)
page_html=uclient.read()
uclient.close()
page_soup=soup(page_html, "html.parser")
containers=page_soup.findAll("div",{"class":"in-size"})
但是,当我检查列表的长度时,而不是获得我期望的值96,而是返回3。
print(len(containers))
>>> 3
由于某些原因,当我在“容器”中打印文本时,我从一些标有“ de graca”的商品中获得了数据。
我尝试使用其他解析器,但是结果仍然错误。
目前尚不清楚您要获取什么。你是说这个吗?
这将返回该页面的96个项目。
因此,您在用于查找元素的选择器中犯了错误。 如果在检查了该页面上的元素之后在元素选项卡中按ctrl + f,则会发现只有3个节点为“ in-size”类。因此长度为3。
我已使用正确的选择器修改了您的代码位。我正在做的是找到ID为“ offers”的容器,它是所有商品的父容器。并且,如果您查看html结构,您会注意到每个ser拥有的所有卡都具有“ pr-tl-card”类。