首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BeautifulSoup没有返回它应该返回的所有元素

BeautifulSoup没有返回它应该返回的所有元素
EN

Stack Overflow用户
提问于 2020-04-09 07:21:52
回答 2查看 30关注 0票数 1

我正在尝试从下面的网站导入所有的优惠与美丽的汤。

代码语言:javascript
复制
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"})

但是,当我检查列表的长度时,它返回3,而不是像我预期的那样获得值96。

代码语言:javascript
复制
print(len(containers))
>>> 3

由于某种原因,当我在“容器”中打印文本时,我从一些标签为"de graca“的报价中获取数据。

我尝试过使用不同的解析器,但是结果仍然是错误的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-09 07:41:15

所以你在用来查找元素的选择器中犯了错误。如果在检查页面上的元素后,在elements选项卡中输入ctrl+f,您会发现只有3个节点的类为" in -size“。因此长度为3。

我已经用正确的选择器修改了你的代码。我要做的是找到id为" offers“的容器,它是所有offers的父容器。如果您查看html结构,您将注意到每个服务器的所有卡都具有"pr-tl-card“和”pr-tl-card“类。

代码语言:javascript
复制
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")
offers=page_soup.select("#offers div.pr-tl-card")
len(offer_container)
票数 0
EN

Stack Overflow用户

发布于 2020-04-09 07:36:40

目前还不清楚您试图获取的是什么。你的意思是这样吗?

代码语言:javascript
复制
containers=page_soup.findAll("div",{"class":"pr-tl-card"})

这将返回该页面的96个项目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61111560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档