正在确定网页中的 HTML 元素以进行网页抓取

Determining HTML Element in a web page for web scraping

这里是 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 element," 时看到日期信息,但我无法弄清楚获取它所必需的 HTML 元素。 &nbsp; 是否有细微差别使抓取变得更加困难?我不确定接下来要探索哪些选项。

对于 BeautifulSoup 这相对简单 - 这个想法是通过 class 和文本定位 "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 "