python - 使用 Beautiful Soup 从非类部分获取数据

标签 python parsing python-2.7 html-parsing beautifulsoup

我还是很新手,正在学习python和美汤。我对如何从一段非类 HTML 中获取文本很着迷。

这是我正在使用的 HTML 片段:

<section class="userbody">
    <script type="text/javascript"></script>
    <figure class="iw">
        <div id="ci">
            <img id="iwi" title="image 2" alt="" src="http://images.craigslist.org/00C0C_daJm4U9yU5B_600x450.jpg" style="min-width: inherit; min-height: 450px;"></img>
        </div>
        <div id="thumbs"></div>
    </figure>
    <div class="mapAndAttrs">
        <div class="mapbox">
            <div id="map" class="leaflet-container leaflet-fade-anim" data-longitude="-84.072447" data-latitude="33.908534" tabindex="0">
                <div class="leaflet-map-pane" style="transform: translate(0px, 0px);"></div>
                <div class="leaflet-control-container">
                    <div class="leaflet-top leaflet-left"></div>
                    <div class="leaflet-top leaflet-right"></div>
                    <div class="leaflet-bottom leaflet-left"></div>
                    <div class="leaflet-bottom leaflet-right">
                        <div class="leaflet-control-attribution leaflet-control"></div>
                    </div>
                </div>
            </div>
            <div class="mapaddress">

                Some Address

            </div>
        </div>
        <div class="attributes"></div>
    </div>
    <section id="postingbody">
            some posting info
            <br></br>
             more posting info
             <br></br>
    </section>
    <section class="cltags"></section>
    <div class="postinginfos"></div>
</section>

我已经能够拉取地址信息了:

     for address in soup.findAll("div", { "class" : "mapaddress" }):
       addressText = ''.join(address.findAll(text=True))

看起来 findAll() 不适用于没有类的标签,正如我在

中尝试做的那样
     for post in soup.findall("section", { "id" : "postingbody" }):
       postText = ''.join(post.findAll(text=True))

如何抓取 id="postingbody"部分中的文本?

最佳答案

考虑到 s 是 html 字符串,您可以执行以下操作:

from bs4 import BeautifulSoup

soup = BeautifulSoup(s)
print soup.find(attrs={'id' : 'postingbody'})

输出:

<section id="postingbody">
            some posting info
            <br/>
             more posting info
             <br/>
</section>

关于python - 使用 Beautiful Soup 从非类部分获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21203677/

相关文章:

vb.net - ADO - 解析字符串 URL 并使用参数

Python 优化程度(公共(public)子表达式消除)

python - django oscar 和 djangoccms

python - SQLAlchemy中的VALUES子句

javascript - 使用 FS 读取字符串会返回此错误 : Unexpected token r in JSON at position 0

linux - 当我将 python 2.7 与 sudo 一起使用时,它不起作用

python - 如何在 Odoo 中从产品模板属性行创建产品变体?

python - 美汤抢外汇价格

python - 我在 Flask 中有部分 View /代码隐藏吗?

java - SAX 解析器跳过一些不被解析的元素?