【问题标题】:Python->BeautifulSoup, get some textPython->BeautifulSoup,获取一些文本
【发布时间】:2015-12-25 20:38:32
【问题描述】:

我有这个page,我想获取文本部分(链接图像中标记为“TEXT”)。我怎样才能做到这一点?我尝试了find, findAllBeautifulSoup 的组合,但我无法得到它......我也在使用Mechanize。这样的东西没用,我这里有很多类:

    h = soup.find_all("div", {"class":"one"})
    for tag in h:
        secondTags = tag.find_all("div", {"class":"two"})
        for tag in secondTags:
            print (tag.text)

谢谢!

附:我已经删除了所有的 ids 和 classes,对此感到抱歉。

编辑: 代码如下:

<div class="main">
<div id="main_content">
    <div id="options">
        <ul id="select" class="u-select">
            <li class="generic" id="my">
                <div class="header">
                    <h2>
                        <span class="header_arrow">...</span>
                        TEXT
                        <a class="info" href=" " </a>
                        <div class="tool_info" </div>
                    </h2>

【问题讨论】:

  • 在此处发布示例 html 代码。
  • 我已经编辑了第一篇文章!

标签: python beautifulsoup


【解决方案1】:

想法是使用header_arrow 类定位span 元素,然后获取next sibling

工作示例:

from bs4 import BeautifulSoup

data = """
<div id="main_content">
    <div id="options">
        <ul id="select" class="u-select">
            <li class="generic" id="my">
                <div class="header">
                    <h2>
                        <span class="header_arrow">...</span>
                        TEXT
                        <a class="info" href=" "> </a>
                        <div class="tool_info"> </div>
                    </h2>
                </div>
            </li>
        </ul>
    </div>
</div>
"""

soup = BeautifulSoup(data, "html.parser")

print(soup.select_one("ul#select li.generic div.header h2 span.header_arrow").next_sibling.strip())

打印:

TEXT

【讨论】:

    猜你喜欢
    • 2016-03-26
    • 2020-05-03
    • 2013-10-23
    • 2019-10-25
    • 2016-03-24
    • 1970-01-01
    • 2020-01-15
    • 2020-05-14
    • 1970-01-01
    相关资源
    最近更新 更多