【问题标题】:Getting the content of a <p> tag inside a <div> class="some_class"> tag using Beautiful Soup in Python [duplicate]在 Python 中使用 Beautiful Soup 在 <div> class="some_class"> 标记中获取 <p> 标记的内容 [重复]
【发布时间】:2020-09-05 17:14:02
【问题描述】:

我有一个带有 class="some_class" 的 div 标签的 HTML 代码。而且这个div标签里面有一个p标签:

&lt;div class="some_class"&gt;

&lt;p&gt;blah blah blah...&lt;/p&gt;

&lt;/div&gt;

我需要获取 p 标签的内容并将其存储在一个变量中。 我分两步完成:

1)使用findAll('div', class_='some_class')获取div标签,

2)在p标签处使用split

有没有直接的方法可以做到这一点而不必进行复杂的拆分?

【问题讨论】:

  • BeautifulSoup(s).select("div.some_class p")

标签: python html web-scraping beautifulsoup


【解决方案1】:

您可以像 #1 一样再次使用find_all

但是,如果您不需要div,您可以使用#2

import bs4 

html = """
<div class="some_class">
  <p>blah blah blah...</p>
</div>
"""

soup = bs4.BeautifulSoup(html)

# 1
for div in soup.find_all('div', class_='some_class'):
    for p in div.find_all('p'):
        print(p.text)
# 2
for p_in_some_class in soup.select('div.some_class p'):
    print(p.text)

【讨论】:

    【解决方案2】:

    如果你只有一个div标签,里面只有一个p标签,你可以这样做:

    content = soup.findAll('div', class_= 'some_class')[0].findAll('p')[0].contents[0]

    【讨论】:

      猜你喜欢
      • 2018-01-15
      • 2020-08-24
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      • 2021-02-22
      • 2021-08-20
      • 2016-09-06
      • 1970-01-01
      相关资源
      最近更新 更多