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知识库 -> python 爬虫 -> 正文阅读

[Python知识库]python 爬虫

一、requests库的安装

1、安装命令
cmd以管理员身份运行打开,输入命令:pip install requests 回车即可
在这里插入图片描述
request查找网站:http://www.python-requests.org
2、检查是否安转成功,打开IDLE,输入import requests调用库,然后以防问百度主页为例子r=requests.get(“http://www.baidu.com”),然后查看它的状态码:r.status_code,状态码为200表示成功;可以更改它的编码为utf-8:r.encoding=‘utf-8’;打印网页信息r.text,这时可以看到百度的内容被成功抓取了。
示意图
3、requests库的7个主要方法
在这里插入图片描述

二、requests库的get()方法

最简单的方法:r = requests.get(url)
1、请求:通过get方法和url来构造一个向服务器请求资源的Request对象,这个对象是requests库内部生成的。
注意:python是大小写敏感的,这里的对象r是大写的
2、返回:Requests.get函数返回的内容用变量r来表示,这里的r是Response对象,Response对象返回的所有的相关资源。
在这里插入图片描述

3、requests完整的使用方法有3个参数
requests.get(url,params=None,**kwargs)
url:拟获取页面的url链接
params:url中的额外参数,字典或字节流格式,可选
**kwargs:12个控制访问的参数,可选
4、get方法实际上使用了request的方法来封装,requests一共提供了7个常用方法,除了第一个request方法是基础方法外其他的6个方法都是通过调用request方法来实现的。
5、response对象
在这里插入图片描述

(1)r.headers返回get请求获得页面的头部信息
(2)type?查看r的类型
(3)Respsone对象
Response对象包含服务器返回的所有信息,同时也包含向服务器请求的request信息
(4)5个response访问网页最常用的和最必要的属性
在这里插入图片描述
(5)response对象的属性
在这里插入图片描述
(6)encoding和apparent_encoding的区别
r.encoding的编码方式是从HTTP header中的charset字段获得的,如果HTTP header中有这样一个字段说明我们访问的服务器对它资源的编码是有要求的,而这样的编码会获得回来,存在r.encoding中,但并不是所有的服务器对它的资源编码都是有相关要求,所以,如果header中不存在charset,则认为编码为ISO-8859-1,百度默认为ISO-8859-1编码。但是这样的编码并不能解析中文,所以requests库提供了另外一个备选编码:apparent_encoding,这个编码是根据http的内容部分,而不是头部分去分析内容中出现文本可能的编码形式,原则上说apparent_encoding的编码比encoding更加准确,因为encoding其实并没有解析内容,而是从header字段中提取编码;apparent_encoding根据网页内容分析出的编码方式。所以当我们用encoding不能正确解码返回内容时,可以用apparent_encoding来接出相关的编码信息。

三、requests的爬取网页的通用代码框架

1、requests库的异常
在这里插入图片描述
2、response返回网页的所有内容,它提供一个方法raise_for_status()专门与异常打交道的方法,它会判断返回的状态是不是200,如果是200则是正常的。
在这里插入图片描述
爬去网页的通用代码框架

import requests
>>> def getHTMLText(url):
	try:
		r = requests.get(url,timeour=30)
		r.raise_for_status()#如果状态码不是200,引发HTTPError异常
		r.encoding = r.apparent_encoding
		return r.text
	except:
		return "产生异常"
	if _name_=="_main_":
		url="http://www.baidu.com"
		print(getHTMLText(url))
		

四、HTTP协议及requests库方法

HTTP(Hypertext Transfer Protocol)超文本传输协议,HTTP是一个基于“请求与响应”模式的、无状态的应用层协议。HTTP协议采用URL作为定位网络资源的标识。
1、URL格式 http://host[:port][part]
host:合法的Internet主机域名或IP地址
port:端口号,缺省端口为80
path:请求资源的路径
实例:
http://www.bit.edu.cn
http://220.181.111.188/duty
HTTP URL的理解:
URL是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源
2、HTTP协议对资源的操作
在这里插入图片描述
3、HTTP协议对资源的操作

云端上存储的所有资源,它实际上用URL来做相关的描述,也叫标识,获取资源的时候可以用GET或HEAD方法,GET方法获得全部资源,HEAD方法获得资源的头部信息;如果我们想把自己的资源方法URL上,可以使用PUT、post、PATYCH、删除用delete。事实上HTTP协议通过URL对资源做定位,通过这6个方法对资源进行操作,每一次操作都是独立无状态的,这次的操作跟下次的操作并没有关系。在HTTP协议里,网络通道跟服务器我都是黑盒子,它能看到的就是URL链接和url的相关的操作。
1)理解PATCH和PUT的区别:
(1)假设URL位置有一组数据UserInfo,包括UserID、UserName等20个字段。
(2)需求:用户修改了UserName,其他不变
(3)采用PATCH,仅向URL提交UserName的局部更新请求。
(4)采用PUT,必须将所有20个字段一并提交到URL,未提交字段被删除
(5)PATCH的最主要好处:节省网络带宽
4、HTTP协议与Requests库
在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-22 10:53:42  更:2021-10-22 10:55:14 
 
开发: 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/15 21:45:12-

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