正在确定网页中的 HTML 元素以进行网页抓取
Determining HTML Element in a web page for web scraping
这里是 HTML 代码:
<span class="milestone">Announcement:</span>
" 2 April 2000 "
<br>
<span class="milestone">Ground Breaking:</span>
" 23 February 2002
<br>
etc.
在网页上,我可以看到:
公告:2000 年 4 月 2 日
破土动工:2002 年 2 月 23 日
但我不知道如何使用 Python 的 BeautifulSoup 获取日期。我可以在使用 Chrome 的 "inspect element," 时看到日期信息,但我无法弄清楚获取它所必需的 HTML 元素。
是否有细微差别使抓取变得更加困难?我不确定接下来要探索哪些选项。
对于 BeautifulSoup
这相对简单 - 这个想法是通过 class 和文本定位 "milestone" 元素,然后使用 .next_sibling
到达下一个兄弟:
from bs4 import BeautifulSoup
data = """
<div>
<span class="milestone">Announcement:</span>
" 2 April 2000 "
<br>
<span class="milestone">Ground Breaking:</span>
" 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 "
这里是 HTML 代码:
<span class="milestone">Announcement:</span>
" 2 April 2000 "
<br>
<span class="milestone">Ground Breaking:</span>
" 23 February 2002
<br>
etc.
在网页上,我可以看到:
公告:2000 年 4 月 2 日
破土动工:2002 年 2 月 23 日
但我不知道如何使用 Python 的 BeautifulSoup 获取日期。我可以在使用 Chrome 的 "inspect element," 时看到日期信息,但我无法弄清楚获取它所必需的 HTML 元素。
是否有细微差别使抓取变得更加困难?我不确定接下来要探索哪些选项。
对于 BeautifulSoup
这相对简单 - 这个想法是通过 class 和文本定位 "milestone" 元素,然后使用 .next_sibling
到达下一个兄弟:
from bs4 import BeautifulSoup
data = """
<div>
<span class="milestone">Announcement:</span>
" 2 April 2000 "
<br>
<span class="milestone">Ground Breaking:</span>
" 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 "