Python3爬虫学习之爬虫利器Beautiful Soup用法分析
介绍
在Python3中,爬虫领域有许多实用的工具,而Beautiful Soup就是其中一款非常常用的解析库。
环境配置
在使用Beautiful Soup之前,需要先安装:
pip install beautifulsoup4
基本语法
在使用Beautiful Soup解析网页前,需要先将对应的HTML文档加载:
from bs4 import BeautifulSoup
# 此处为加载HTML文件
with open('example.html', 'r') as f:
html_doc = f.read()
# 创建Beautiful Soup对象
soup = BeautifulSoup(html_doc, 'html.parser')
其中,soup
就是我们待处理的HTML文档。
常用方法
1. 标签选择器
在Beautiful Soup中,我们可以通过标签名来选择HTML文档中的元素。
例如,我们需要选定HTML文档中的<title>
标签,可以通过以下语法实现:
title = soup.title
如果需要获取标签中的文本内容,则可以使用以下语法:
title = soup.title.string
2. 属性选择器
在HTML文档中,有些元素可能会拥有一些自定义属性,例如class
和id
等。我们可以通过这些属性来选择对应的元素。
例如,我们需要选定HTML文档中<div>
标签中class="content"
的元素,可以通过以下语法实现:
content = soup.find('div', {'class': 'content'})
3. CSS选择器
在Beautiful Soup中,还可以使用类似CSS的语法来选择元素。例如,我们需要选定HTML文档中<div>
标签中class="content"
的元素,可以通过以下语法实现:
content = soup.select('div.content')
示例
以下是一个简单的例子,我们将解析博客园官网(http://www.cnblogs.com/)的HTML,获取页面中所有的博客标题和发布时间:
import requests
from bs4 import BeautifulSoup
# 获取HTML页面
url = 'http://www.cnblogs.com/'
res = requests.get(url)
html_doc = res.content
# 解析HTML页面
soup = BeautifulSoup(html_doc, 'html.parser')
# 获取所有博客标题和发布时间
for post in soup.select('.post_item'):
title = post.find('a').text
time = post.find('div', {'class': 'date'}).text
print(title, time)
执行以上代码后,我们将可以看到所有博客的标题和发布时间被输出。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3爬虫学习之爬虫利器Beautiful Soup用法分析 - Python技术站