【问题标题】:parsing returned HTML by beautifulsoup解析beautifulsoup返回的HTML
【发布时间】:2015-11-02 19:53:05
【问题描述】:

我正在尝试在这里解析一些 html 并使用漂亮的汤

有时我会搜索特定的 div 标签,如下所示:

print soup.find("div", {"class": "sorteringsvalg Alle"})

返回的输出如下:

<div class="sorteringsvalg Alle"> Alle  <label class="sorteringtype">
<input checked="" name="type" type="radio" value="Alle"/>(638) </label></div>

我感兴趣的是括号中的数字,所以我需要进一步处理这些数据。我尝试过对此使用 're' 正则表达式,但返回的对象没有表示为字符串,因此它不起作用。

【问题讨论】:

    标签: python html python-2.7 html-parsing bs4


    【解决方案1】:

    找到内部输入并获取next sibling

    div = soup.find("div", {"class": "sorteringsvalg Alle"})
    print div.find("input", value="Alle").next_sibling.strip()
    

    或者,一次性使用CSS selector

    soup.select("div.Alle input[value=Alle]")[0].next_sibling.strip()
    

    【讨论】:

    • 效果很好,谢谢!只是一个问题,我还发现添加 .getText() 也可以,这会更有效,你知道吗?
    • @Slavi get_text() 也是一个选项,但它仅适用于标签,如果您需要定位“navigablestring”(基本上是一个文本节点),那么与 next_sibling 横向移动是好的足够的。谢谢。
    【解决方案2】:

    您可以在标签中获取字符串,如下所示:

    print soup.find("label").get_text(strip=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-06
      • 2014-03-06
      • 2011-07-21
      • 2012-12-13
      相关资源
      最近更新 更多