确定网页中的 HTML 元素以进行网页抓取
Posted
技术标签:
【中文标题】确定网页中的 HTML 元素以进行网页抓取【英文标题】:Determining HTML Element in a web page for web scraping 【发布时间】:2018-04-06 01:56:21 【问题描述】:这是 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 的“检查元素”时,我可以看到日期信息,但我不知道获取它所需的 HTML 元素。 &nbsp;
是否有细微差别使抓取更加困难?我不确定接下来要探索哪些选项。
【问题讨论】:
【参考方案1】:使用BeautifulSoup
,这相对简单——想法是通过类和文本定位“里程碑”元素,然后使用.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 "
【讨论】:
这正是我所需要的。 .next_sibling 是 BeautifulSoup 库的一部分吗? @mschmidt 是的,这是一个内置方法,很高兴它有所帮助。以上是关于确定网页中的 HTML 元素以进行网页抓取的主要内容,如果未能解决你的问题,请参考以下文章