IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 稳扎稳打学爬虫04—Beautiful Soup详解及一个小例子 -> 正文阅读

[Python知识库]稳扎稳打学爬虫04—Beautiful Soup详解及一个小例子

1、Beautiful Soup简介

1.1含义

Beautiful Soup 是?个可以从HTML或XML?件中提取数据的Python库,它可以通过你喜欢的转换器实现惯?的?档导航,查找,修改?档的?式.
Beautiful Soup是利?此关系:HTML的属性都具有结构上的层级关系, ?且有css和id属性,来进?提取的

1.2解析器

使用BeautifulSoup解析代码,能够发出一个BeautifulSoup的对象,并按照标准的缩进格式的输出结构
Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,一般常用lxml HTML 解析器

解析器使用方法优势劣势
Python标准库BeautifulSoup(markup, “html.parser”)Python的内置标准库、执行速度适中、文档容错能力强Python 2.7.3 or 3.2.2)前 的版本中文档容错能力差
lxml HTML 解析器BeautifulSoup(markup, “lxml”)速度快、文档容错能力强需要安装C语言库
lxml XML 解析器BeautifulSoup(markup, [“lxml”, “xml”])、BeautifulSoup(markup, “xml”)速度快、唯一支持XML的解析器需要安装C语言库
html5libBeautifulSoup(markup, “html5lib”)最好的容错性、以浏览器的方式解析文档、生成HTML5格式的文档速度慢、不依赖外部扩展

2、Beautiful Soup包的安装与导?

Beautiful Soup包的安装
pip install bs4
Beautiful Soup包的导?
from bs4 import BeautifulSoup

3、中文文档

https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html

4、构建对象

Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种:Tag、NavigableString、BeautifulSoup、Comment .
BeautifulSoup 对象表示的是一个文档的全部内容.大部分时候,可以把它当作 Tag 对象,它支持 遍历文档树搜索文档树 中描述的大部分的方法.

5、一个简单的Beautiful Soup例子

计划下载“夜的命名术”此小说,但是网页里面广告弹窗过多,打算自己爬取,此次主要是获取规整的页面结构

5.1获取网页源码

#导入所需要的包
import requests
from bs4 import BeautifulSoup
#网址
url = "http://www.shuquge.com/txt/3478/index.html"
#构造虚拟浏览器
headers ={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
}
r = requests.get(url,headers=headers)
# 给encoding属性重新赋值, 用推测的编码去解析网页内容
r.encoding = r.apparent_encoding
#查看网页源代码
r.text

在这里插入图片描述结构很乱,很难看明白

5.2查看网页源码的类型,并将其变成BeautifulSoup类型

#查看源码类型,是文本类型
type(r.text)

在这里插入图片描述

# 为了在这个字符串中高效的搜索出我们需要的内容
# 利用BeautifulSoup 将这个字符串改变成BeautifulSoup类型
bs = BeautifulSoup(r.text,"lxml")
#查看bs类型
type(bs)

在这里插入图片描述

5.3 查看bs中内容

bs中内容变得规整,符合HTML的页面结构,方便阅读
在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:28:10  更:2022-01-17 11:28:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:24:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码