Python3使用BeautifulSoup解析HTML及获取属性值详解
本文介绍在Python3中如何利用urllib请求网页数据,并结合BeautifulSoup库解析HTML内容。通过具体代码示例,演示如何获取标题、类名、ID等属性值,以及使用select方法按标签、类名或ID进行精准查找,为网页数据抓取提供实用参考。
在实际开发中,经常需要使用BeautifulSoup来解析从网络爬取下来的网页数据。
首先,需要导入相关的库:from bs4 import BeautifulSoup。
接着,可以利用urllib模块向服务器发起请求以获取数据。
请注意,使用前务必确保已正确导入所需的库文件。
import urllib.request
随后调用urlopen函数,读取服务器返回的数据内容。
f=urllib.request.urlopen(‘http://jingyan.baidu.com/article/455a9950bc94b8a166277898.html‘) response=f.read()
为了便于演示,此处不实际发起网络请求,而是直接使用本地的HTML代码片段,如下所示。
注意:代码中的”'xxx”'部分表示多行注释,用于解释代码逻辑。
#python3
from bs4 import BeautifulSoup
html='''<html>
<head>
<title class='ceshi'>super 哈哈 star</title>
</head>
<body>
天下第一帅
<p class='sister'>
是不是
</p>
</body>
</html>'''
#用BeautifulSoup解析数据 python3 必须传入参数二'html.parser' 得到一个对象,接下来获取对象的相关属性
html=BeautifulSoup(html,'html.parser')
# 读取title内容
print(html.title)
# 读取title属性
attrs=html.title.attrs
print(attrs)
# 获取属性attrs['class'] ---->['ceshi'] 这是一个list 通过下标可以获取值
print(attrs['class'][0])
# 读取body
print(html.body)
读取数据还可以通过BeautifulSoup的select方法
html.select()
#按标签名查找
soup.select('title')
soup.select('body')
# 按类名查找
soup.select('.sister')
# 按id名查找
# p标签中id为link的标签
soup.select('p #link')
#取标签里面的值
soup.p.string
#取标签里属性值 通过href获取
html['href']
以上即为Python3中利用爬虫获取HTML内容及提取各属性值的方法介绍,希望能为读者提供有价值的参考,也欢迎大家继续支持本站获取更多技术分享。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









