爬虫笔记2 BeautifulSoup解析库与文件操作

本文详细介绍了如何使用BeautifulSoup库解析HTML源代码,包括解析网页、理解HTML基础以及提取数据的方法。同时,文章还涵盖了Python中的基本文件操作,如读写文件、CSV、Excel和JSON文件。最后,通过爬取起点中文网原创风云榜的实例,展示了如何结合这些知识进行实战应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@兰博怎么玩儿
本文介绍:BeautifulSoup解析库和一些基本的文件操作,最后展示一个实例:利用BeautifulSoup解析库,爬取起点中文网(https://www.qidian.com/rank/yuepiao?style=2)中“原创风云榜”榜单数据。

1、BeautifulSoup的使用

1.1 解析源代码

在笔记1中,我们利用requests库请求的网页,可以利用BeautifulSoup库解析成Soup文档,以便过滤提取数据。

soup = BeautifulSoup(wb_data.text,'lxml')

其中,wb_data.text是取源码文本,‘lxml’是使用的解析器。
除了lxml解析器,还可以使用如下的解析器:

解析器 使用方法 优点 缺点
Python标准库 BeautifulSoup(wb_data.text,‘html.parser’) Python内置的标准库,速度中等,文档容错能力强 Python旧版本容错能力差
lxml HTML解析库 BeautifulSoup(wb_data.text,‘lxml’) 速度快,文档容错能力强 需要安装C语言库
lxml XML解析库 BeautifulSoup(wb_data.text,‘xml’) 速度快,唯一支持XML的解析器 需要安装C语言库
html5llib解析器 BeautifulSoup(wb_data.text,‘html5llib’) 容错性最好,以浏览器方式解析文档,生成HTML5格式的文档 速度慢,不依赖外部扩展

产生Soup文档时,需要’UTF-8’格式编码,因此若编译时报错:”UnicodeEncodeError: ‘XXX’ codec can’t encode character ‘\xbb’ in position 8530: illegal multibyte sequence“,可增加编码参数:

soup = BeautifulSoup(wb_data.text,'lxml',from_encoding='utf-8')

1.2 HTML基础

HTML也就是前面说的网页源代码,它与CSS(Cascading Style Sheets,层叠样式表)、JavaScript一起构成了网页。
HTML通过一层一层的嵌套表示网页各个部分的对应关系,其基本元素是成对出现的标签,标签中还可能有n个属性:

<标签名 属性1=“属性1的值” 属性2=“属性2的值”...>显示在网页上的文本</标签名>

下面是一段HTML代码示例:

<html>
	<head>
		<title>网页名</title>
	</head>
	<body>
		<div class="aaa" href="bbb">
			<ul>
				<li 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值