【问题标题】:BeautifulSoup finding data with two different div classesBeautifulSoup 使用两个不同的 div 类查找数据
【发布时间】:2018-12-02 23:18:18
【问题描述】:

我正在尝试解析这个 html 网页,并且我想要网页中的特定数据。我在这个特定的类上使用 findall 函数。唯一的问题是,由于类冲突,它会在网站一侧收集不必要的数据。我基本上想对包含“mainContent”和项目类名称的 div 类进行查找。我只找到了如何找到包含“空白”或“空白”的类。试图找到类名为“空白”和“空白”的东西的语法是什么?谢谢!

【问题讨论】:

  • 或者我怎样才能得到这个特定div中的所有子类?

标签: python html beautifulsoup


【解决方案1】:

使用css selectors 代替 find_all():

#! /usr/bin/env python3
# -*- coding: UTF8 -*-from bs4 import BeautifulSoup

html_doc = """
<!DOCTYPE html>
<html lang="en-US">
<head>
  <title>test</title>
</head>
<body>
  <div class="alpha">not a match.</div>
  <div class="beta">not a match.</div>
  <div class="alpha beta">match.</div>
  <div class="beta alpha">match.</div>
  <p class="alpha beta">not match.</div>
</body>
</html>
"""

soup = BeautifulSoup(html_doc, 'html.parser')

print(soup.select("div.alpha.beta"))

【讨论】:

  • 基本上,有一个 div 标签,其 id 为“mainContent”。我只想要该标签中的所有内容。我确信这会起作用,但我仍然无法检索数据。有没有更多的想法可以给我”@
  • 这是一个不同的问题。在您的问题中包含“这就是我所拥有的”和“这是我期望的输出”是一种很好的做法。 soup.select("div#mainContent")
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-10
  • 2017-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多