当前位置: 首页 > 知识库问答 >
问题:

当使用. findAll()方法时,漂亮的汤正在计算太多的标签

戚兴邦
2023-03-14

我正在编写webscraping的代码,看起来像是. findAll()函数只是找到类属性包含指定类名的标签。

例如,如果我写container=page\u soup。findAll('div',{'class':'compare-collapse'})容器将包含div标记,其类不仅是'compare-collapse',而且是'compare-collapse比较-collapse.\u collapsed'。我只想找到其类属性仅为'compare-collapse'的div标记。我以前使用过Beautifulsoup,但没有遇到这个问题。

这是我的代码。我用许多容器编写代码,以便更容易调试。错误发生在容器3。

html = driver.page_source
page_soup = soup(html,"html.parser")

container1=page_soup

container2=container1.findAll('div',{'id':'ratings'})
container2=container2[0]

container3=container2.findAll('div',{'class':'compare-collapse'}) #BUG HAPPENS HERE
container3=container3[1]

container4=container3.findAll('div',{'class':'compare-collapse_items'})
container4=container4[0]

container5=container4.findAll('div',{'class':'compare-section'})
container5=container5[0]

container6=container5.findAll('div',{'class':'container-fluid compare-row'})
container6=container6[2]

container7=container6.findAll('div',{'class':'row'})
container7=container7[0]

name=container7.div.div.text
print(name)

我以前将所有容器都存储在文本文档中container3的类是compare-collapse compare-collapse\u collapse,而不是compare-collapse。我该如何解决这个问题?

共有1个答案

傅浩漫
2023-03-14

复制:BeautifulSoup webscraping find_all():查找精确匹配

请看上面的问题。

根据你的,它将是:

container = page_soup.findAll(lambda tag: tag.name == 'div' and 
                               tag.get('class') == ['compare-collapse'])
 类似资料:
  • 我已经获得了刮取第一页的代码,但是url从: https://www.expansion.com/empresas-de/ganaderia/granjas-en-general/index.html -- 如何创建从第2页到第65页的循环?非常感谢!

  • 问题内容: 我正在尝试在Python 2.7中安装BeautifulSoup 。我不断收到错误消息,无法理解原因。 我按照说明安装了pip,该pip已安装到以下目录:,然后尝试将其添加到路径中并运行命令。 尝试了两种不同的方法: 都给我这个错误信息: 该外壳突出显示“安装”一词,并说这是无效的语法。 我不知道发生了什么,所以任何帮助将不胜感激。 问题答案: 是 命令行工具 ,而不是Python语法

  • 我有一小段代码来从web站点中提取表数据,然后以csv格式显示。问题是for循环多次打印记录。我不确定是不是因为 标签。顺便说一句,我是Python新手。谢谢你的帮助!

  • 我试图刮此页上Flipkart: http://www.flipkart.com/moto-x-play/p/itmeajtqp9sfxgsk?pid=MOBEAJTQRH4CCRYM 我试图找到的div类"fk-ui-ccarousel超级容器相同的vreco部分reco-carousel-边界-顶部sameHorizontalReco",但它返回空结果。 divs是空的。我使用inspect元

  • 我有一个带有div标签的页面源,如下面的示例页面源。我想像下面的例子一样刮掉所有的网址,并将它们保存在列表中。 示例url: 来自: 我尝试使用下面的代码从href中刮取网址。我试图使用span类来过滤只包含作业卡search__easy飞机的div标签。代码不返回任何网址,只是一个空列表。我对美丽的汤和硒不熟悉。如果有人能指出我的问题是什么,并提出一个解决方案,我会很高兴。特别是如果你也能给出一

  • 大家好,我是Python新手。请让我知道如何使用BeautifulSoup从下面的代码部分删除数据。 外面看起来像这样 问:哪个是世界领先的产蛋国? 中国 印度 日本 马来西亚