首页 文章

确定Web页面中的HTML元素以进行Web抓取

提问于
浏览
1

这是HTML代码:

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

在网页上,我可以看到:

Announcement: 2000年4月2日

Ground Breaking: 2002年2月23日

但我无法弄清楚如何使用Python 's BeautifulSoup. I can see the date information when using Chrome' s "inspect element,"获取日期,但我无法弄清楚抓取它所需的HTML元素 . 是否存在使用 &nbsp; 的细微差别使得刮擦变得更加困难?我不确定接下来要探索什么选项 .

1 回答

  • 1

    使用 BeautifulSoup 这是相对简单的 - 想法是按类和文本找到"milestone"元素,然后使用.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 "
    

相关问题