网络爬虫入门 (二) BeautifulSoup4的简单使用
2018-07-16 本文已影响0人
闻榴莲的猫
一、简介
BeautifulSoup是一款用Python编写的解析网页的模块,使用起来非常方便,下面介绍一下BeautifulSoup4。
二、bs4的使用
笔者使用的是Anaconda集成的Python环境,使用conda list查看已安装模块里是否有beautifulsoup4
![](https://img.haomeiwen.com/i12858506/3d749d6fa0335f5f.png)
这里Anaconda集成的环境已经有了该模块,可以直接进行下一步
1. 导入模块
from bs4 import BeautifulSoup as bs
注意这里的模块名叫bs4,而不是全称(后面简称bs)
2. 定义一个变量存一段简单的html
html = """
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<title>html标签简介</title>
<meta charset="utf-8" />
</head>
<body>
<div class="mydiv">
<h1>网页标题</h1>
</div>
<div id="div2">
<h2 class="second">子标题</h2>
</div>
</body>
</html>
"""
现在要取其中的页面标题,首先需要创建bs对象读取html
soup = bs(html)#创建对象
print(soup.prettify())#格式化输出内容
3.筛选标签元素
lab_title = soup.find("title")
print(lab_title)
divs = soup.find("div")#获取第一个div标签
divs = soup.find_all("div")#获取所有div标签,返回一个可迭代对象
print(divs)
也可使用css的语法格式进行筛选:
print(soup.select("div"))#根据标签筛选
print(soup.select(".mydiv"))#根据class筛选
print(soup.select("#div2"))#根据id筛选
print(soup.select("[class='second']"))#根据属性进行筛选,属性class为值second的标签
print(soup.select("div > h2"))#筛选div下的h2标签
此种方式返回的是全部符合要求的标签
三、总结
以上就是BeautifulSoup4的简单使用,它还有更多实用的功能,详见官方文档:
https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh