代码之家  ›  专栏  ›  技术社区  ›  mschmidt

确定网页中用于网页抓取的HTML元素

  •  1
  • mschmidt  · 技术社区  · 8 年前

    以下是HTML代码:

     <span class="milestone">Announcement:</span>
     "&nbsp; 2 April 2000 "
     <br>
     <span class="milestone">Ground Breaking:</span>
     "&nbsp; 23 February 2002
     <br>
     etc.
    

    在网页上,我可以看到:

    2000年4月2日

    破土动工: 2002年2月23日

    但我不知道如何使用Python的BeautifulSoup抓取日期。当使用Chrome的“inspect元素”时,我可以看到日期信息,但我无法找出获取它所需的HTML元素。有细微差别吗 &nbsp; 这会让刮擦变得更困难?我不确定下一步要探索什么选项。

    1 回复  |  直到 8 年前
        1
  •  1
  •   alecxe    8 年前

    具有 BeautifulSoup 这相对简单-想法是按类和文本定位“里程碑”元素,然后使用 .next_sibling :

    from bs4 import BeautifulSoup
    
    
    data = """
    <div>
     <span class="milestone">Announcement:</span>
     "&nbsp; 2 April 2000 "
     <br>
     <span class="milestone">Ground Breaking:</span>
     "&nbsp; 23 February 2002 "
     <br>
    </div>"""
    
    soup = BeautifulSoup(data, "html.parser")
    
    print(soup.find(class_="milestone", text="Announcement:").next_sibling.strip())
    print(soup.find(class_="milestone", text="Ground Breaking:").next_sibling.strip())
    

    打印:

    "  2 April 2000 "
    "  23 February 2002 "
    
    推荐文章