首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Beautilful汤中某个点之后删除html

在Beautilful汤中某个点之后删除html
EN

Stack Overflow用户
提问于 2016-10-14 12:54:49
回答 1查看 124关注 0票数 3

我有麻烦了。我的目标是在某一时刻解析数据。然后,我想停止解析。

代码语言:javascript
复制
        <span itemprop="address">
         Some address
        </span>
        <i class="fa fa-signal">
        </i>
        ...
       </p>
      </div>
     </div>
     <div class="search_pagination" id="pagination">
      <ul class="pagination">
      </ul>
     </div>
    </div>
   </div>
  </div>
  <div class="col-sm-3">
   <div class="panel" itemscope="" itemtype="http://schema.org/WPSideBar">
    <h2 class="heading_a" itemprop="name">
     Top-10 today
    </h2> #a lot of tags after that moment

我想从<span itemprop="address">获得所有的值(以前有很多),直到Top-10 today

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-14 13:05:50

你可以让BeautifulSoup SoupStrainer

代码语言:javascript
复制
from bs4 import BeautifulSoup, SoupStrainer

only_addresses = SoupStrainer("span", itemprop="address")
soup = BeautifulSoup(html_doc, "html.parser", parse_only=only_addresses)

如果您在“今天的前十名”之前有一些“地址”,但是您对前面的“地址”感兴趣,则可以定制搜索函数

代码语言:javascript
复制
def search_addresses(tag):
    return tag.name == "span" and tag.get("itemprop") == "address" and \
           tag.find_next("h2", text=lambda text: text and "Top-10 today" in text)

addresses = soup.find_all(search_addresses)

这看起来并不简单,但想法很简单-我们使用find_next()对每个“地址”,以检查“今天的前10”标题是否存在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40043715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档