栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 爬虫

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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库

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/338942.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号