【问题标题】:How can i crawl web data that not in tags(class name is same)我如何抓取不在标签中的网络数据(类名相同)
【发布时间】:2017-06-04 22:04:09
【问题描述】:

对不起。 我曾经问过这样一个问题。 之后,我仍然对标签中没有的数据有疑问。 我问的一些不同的问题 (How can i crawl web data that not in tags)

<div class="bbs" id="main-content">
    <div class="metaline">
        <span class="article-meta-tag">
             author
        </span>
        <span class="article-meta-value">
             Jorden 
        </span>
    </div>
    <div class="metaline">
        <span class="article-meta-tag">
            board
        </span>
        <span class="article-meta-value">
            NBA
        </span>
    </div>

I am here

</div>

我只需要

我在这里

【问题讨论】:

  • I am here 仍然在 div 标签(主要内容)中,只是不在某些 div 标签中(class=metaline)。知道这一点,这个问题可能会对您有所帮助:stackoverflow.com/questions/5041008/…

标签: python beautifulsoup


【解决方案1】:

字符串是NavigableString类型的主div的子节点,因此可以循环遍历div.children并根据节点的类型进行过滤:

from bs4 import BeautifulSoup, NavigableString
[x.strip() for x in soup.find("div", {'id': 'main-content'}).children if isinstance(x, NavigableString) and x.strip()]
# [u'I am here']

数据

soup = BeautifulSoup("""<div class="bbs" id="main-content">
    <div class="metaline">
        <span class="article-meta-tag">
             author
        </span>
        <span class="article-meta-value">
             Jorden 
        </span>
    </div>
    <div class="metaline">
        <span class="article-meta-tag">
            board
        </span>
        <span class="article-meta-value">
            NBA
        </span>
    </div>
I am here
</div>""", "html.parser")

【讨论】:

    【解决方案2】:
    soup = BeautifulSoup(that_html)
    div_tag = soup.div
    required_string = div_tag.string
    

    去思考this documentation

    【讨论】:

      猜你喜欢
      • 2017-10-22
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      • 2022-11-02
      • 1970-01-01
      相关资源
      最近更新 更多