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库
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值