TreeMind树图在线AI思维导图
当前位置:树图思维导图模板IT互联网产品结构第二章 爬虫基础思维导图

第二章 爬虫基础思维导图

  收藏
  分享
免费下载
免费使用文件
弓长-张 浏览量:02024-05-07 16:57:59
已被使用0次
查看详情第二章 爬虫基础思维导图

基本原理,数据库,字符编码等内容讲解

树图思维导图提供 第二章 爬虫基础 在线思维导图免费制作,点击“编辑”按钮,可对 第二章 爬虫基础  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:5645ffb426ac1c1828a62fafef2e8390

思维导图大纲

第二章 爬虫基础思维导图模板大纲

HTTP基本原理

HTTP请求

HTTP 请求可以分为四部分内容:请求的网址 (Request URL)、请求方法(RequestMethod)、请求头 (Request Headers) 和请求体(Request Body)。

请求的网址 (Request URL)请求的网址即URL,它可以唯一确定请求的资源。

请求方法(RequestMethod):常见的请求方法有两种: GET 方法和 POST 方法。

GET 方法:请求指定的网页信息,并返回网页内容,提交的数据最多只有1024 字节。

POST 方法:向指定资源提交数据并进行请求处理(如提交表单或上传文件)。数据都包含在请求体中,提交的数据没有字节限制。

请求头 (Request Headers) :请求头是请求的重要组成部分,在编写爬虫程序时,大部分情况下都需要设定请求头不同请求的请求头包含的内容不同,应用时应根据实际需求设定。

请求体(Request Body):请求体中的内容一般是 POST 请求中的表单数据,而GET 请求的请求体为空。

HTTP响应

HTTP响应可以分为三部分内容:响应状态码(Response Status Code)、响应头(ResponseHeaders)和响应体(Response Body)。

响应状态码(Response Status Code):响应状态码表示服务器的响应状态。

响应头(ResponseHeaders):响应头包含了服务器对请求的应答信息。

响应体(Response Body):响应体包含响应的正文数据。例如,请求网页时,响应体是网页的网页源代码;请求图片时,响应体是图片的二进制数据。

urllib库

urllib库简介

urllib 库是 Python 内置的标准库,不需要额外安装即可使用,它包含如下四个模块:request、error 、parse、robotparser。

request: 模拟发送 HTTP 请求。

error:处理HTTP 请求错误时的异常。

parse: 解析、拆分和合并 URL。

robotparser: 解析网站的 robots.txt 文件。

发送请求

request 模块提供了基本的构造 HTTP 请求的方法,同时它还可以处理授权验证(authentication)、重定向 (redirection)、Cookie 会话及其他内容。

处理异常

error 模块提供了 request 模块产生的异常处理方法,它主要包含了 URLError 和HTTPError 两个类。

URLError 类是 error 异常模块的基类,可以捕获 request 模块产生的异常,它具有一个 reason 属性 (返回异常的原因)。

HTTPError 类是 URLError 类的子类,专门处理 HTTP 请求的异常,它具有3个属性,分别为 reason (返回异常原因)、code (返回 HTTP 状态码) 和 headers (返回请求头)。

解析URL

parse 模块提供了解析URL 的方法,包括URL 的拆分、合并和转换。

分析Robots协议

robotparser 模块提供了分析网站 Robots 协议的 RobotFileParser 类,它可以通过分析网站的robots.txt 文件来判断某网页是否能被爬取。RobotFileParser 类提供了多种方法。

(1)set_url():设置 robots.txt 文件的 URL。

(2)read():读取 robots.txt 文件并进行分析。

(3)can_fetch():第一个参数为 User_Agent,第二个参数为要爬取网页的 URL,判断该网页是否能被爬取。

(4)parse():解析 robots.txt 文件中某些行的内容。

(5)mtime():返回上次抓取和分析 robots.txt 文件的时间。

(6) modified():将当前时间设置为上次抓取和分析 robotstxt 文件的时间。

requests库

请求方法

requests库提供了几乎所有的HTTP 请求方法,其中最常用的是GET方法和POST方法。

GET方法:get(url;params=None,**kwargs) (1)url: 请求的URL。这是必传参数,其他都是可选参数。 (2)params:字典或字节序列,作为参数增加到url中。 (3)**kwargs:控制访问的参数,如headers、cookies、timeout和proxies 等。

POST方法:post(url,data=None,json=None,**kwargs) (1) url: 请求的 URL。这是必传参数,其他都是可选参数。 (2) data: 字典、字节序列或文件对象,作为请求体的内容。 (3)json:JSON 格式的数据,作为请求体的内容。(4)**kwargs:控制访问的参数,如 params、headers、cookies、post0函数同样返回一个 Response 类型的对象。

传递URL参数

有时网站会通过 URL 来传递查询参数,这时可使用 get()函数或post()函数的params参数进行设置。

定制请求头

在 requests 库中,get()或 post()函数可以直接传递字典形式的User Agent 信息给headers 参数实现定制请求头。

设置Cookie

利用 post())函数登录了网页,但是如果想要爬取网站登录后的内容,还需要用到 get()函数去请求页面,这时候可直接利用 Cookie 来维持登录状态。

设置超时

在爬取网页的过程中,有时服务器没有响应,程序可能会一直等待响应,requests 库可以在 get()或 post()函数中设置 timeout 参数来解决这个问题。程序在等待设置的秒数后会停止等待,抛出 Timeout 异常。

获取二进制文件

图片、音频、视频等文件本质上是由二进制码组成的,有特定的保存格式和对应的解码方式,想要爬取这些文件,需要获取它们的二进制数据。

字符编码

Python的字符编码

在 Python 3 中,字符串使用 str 或 bytes 类型。str 类型默认为 Unicode 编码格式,该编码格式不适合用来传输和存储,所以需要将 str 类型进行编码,转换成 bytes 类型(如UTF-8、GBK 等格式)。在做编码转换时,通常需要以 Unicode 作为中间编码,即先将其他编码的字符串解码 (decode())方法)成Unicode,再从 Unicode 编码 (encode()方法)成另一种编码。如果要查看具体的编码类型,可以使用 chardet 模块中的 detect()方法。

解决乱码问题

在使用 Python 编写爬虫程序时,大多数网页的编码方式都是 UTF-8,requests 会自动对来自服务器的内容进行解码。但是有一些网页采用的是 GBK 等其他编码方式,或者使用gzip 进行了压缩,返回的内容中包含的中文会出现乱码的情况。因此,在解析网页之前,需要检查请求返回内容的编码方式,并进行解码,获取正确的网页内容。

本章小结

1.HTTP 请求包括请求的网址、请求方法、请求头和请求体。

2.HTTP 响应包括响应状态码、响应头和响应体。

3.urllib 库通过request 模块中 urlopen()函数和 Request()函数发送HTTP请求。

4.urllib 库通过error 模块中的 URLError 类和HTTPError 类处理异常。

5.urllib 库通过 parse 模块实现 URL的拆分、合并和转换。

6.urllib 库通过robotparser 模块解析网站的 robots.txt 文件。

7.requests 库通过 get()函数或 post()函数发送HTTP 请求

8.requests 库提供传递 URL 参数、定制请求头和设置 Cookie 的方法

9.在 Python 中,使用 chardet 模块中的 detet()方法检测字符编码,并使用 decode()方法解码,可解决乱码问题。

概括思维导图模板大纲

因为 HTTPError 是 URLError 的子类,并不能处理父类支持的异常处理,所以一般对 两种异常分开捕获,可先捕获子类的异常,再捕获父类的异常。

相关思维导图模板

第二章  二体问题思维导图

树图思维导图提供 第二章 二体问题 在线思维导图免费制作,点击“编辑”按钮,可对 第二章 二体问题  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:780d8c068f6dba4e54a7ccc988c3a5bc

基础CNN网络结构思维导图

树图思维导图提供 基础CNN网络结构 在线思维导图免费制作,点击“编辑”按钮,可对 基础CNN网络结构  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:7edbd91bd32e8cb287688f794ffc76a9