python 爬虫基础:requests库

本文主要是 MOOC嵩天老师的《Python网络爬虫与信息提取》课的笔记以及总结。


简单介绍

相关的几个package

requests --> beautifulsoup --> re

requests : 获取网页信息(自动爬取html页面,自动提交网络请求)
beautifulsoup:解析网页内容
Re :正则表达式,更进一步提取关键信息

一、requests 库的简单介绍

Requests 库的7种主要方法
requests.get(url) 就可以爬取任意url网页
python 爬虫基础:requests库_第1张图片
对于response的处理:
python 爬虫基础:requests库_第2张图片
python 爬虫基础:requests库_第3张图片r.encodingr.apparent_encoding都可以用来查看网页编码
.encoding 只是猜测http的head的内容
.apparent_encoding 会根据内容猜测编码(所以一般更准确一点)
.text 如果是乱码说明读到的可能是.encoding的编码,这时可以将.apparent_encoding的编码赋予.encoding就可以将乱码转化为可读的文字

二、异常处理

Python 异常处理用 try except 的语法
通用的异常处理的code
python 爬虫基础:requests库_第4张图片

三、Http 的协议

url通过http协议存取资源的internet的路径,就像电脑中的文件一样,但是文件不是存在电脑里,而是存在internet上。每一个url对应一个internet上的数据资源。有些资源很大有些资源很小。

http协议的六个方法就是requests库提供的六个主要函数所对应的功能
head:获取url资源的头部信息,当资源很大,我们不能直接拿下来的时候就可以只分析它的头部信息。
post:向url后增加新的信息,不改变资源原有的内容。
put:将自己的data放到url中,原有的资源将被覆盖掉。
patch:把url原有资源部分修改掉。
python 爬虫基础:requests库_第5张图片
Http 通过url对资源做定位,通过上面六个对资源做管理。把internet当成一个云端,上面存储的资源都是用url来做标示的,想获取的时候可以用get/head,想把自己的资源放上可以用post/put/patch。每次操作都是独立、无状态的。所以这次操作和之前的操作无关。

Patch 和 put 的一些区别 :

http协议与requests库是相互对应的:
python 爬虫基础:requests库_第6张图片例如 head()的方法就可以直接查看头部信息的内容。
python 爬虫基础:requests库_第7张图片用post()的方法向url新增资源。新增的“键值对”(像是字典)资源被默认放在了form的字段下。
python 爬虫基础:requests库_第8张图片
如果提交的是一个字符串会被放入data的中。
python 爬虫基础:requests库_第9张图片
put的方法和post基本类似只不过他会覆盖掉原有的资源。

四、requests库的详细介绍

接下来是对requests库的详细介绍
python 爬虫基础:requests库_第10张图片

首先是 .requests()他是最基本的方法,
python 爬虫基础:requests库_第11张图片逐一来讲解requests的参数,第一个是 params
python 爬虫基础:requests库_第12张图片参数是 data 和json 都是可以将内容赋值给url
python 爬虫基础:requests库_第13张图片定制访问某个url的协议head。
将user-agent 改为 chrome/10 当url再去服务器访问的时候,服务器看到的headers就是chrome/10浏览器。就模拟chrome浏览器向服务器发起访问。
python 爬虫基础:requests库_第14张图片我们可以建立一个字典,以 file 以及对应的文件为键值对,用open的方式打开文件。将对应的字典和files关联起来,我们就可以向URL提交特定的文件
python 爬虫基础:requests库_第15张图片设置一个timeout的时间,用get来抓取url,如果查过时间则返回一个timeout的异常
python 爬虫基础:requests库_第16张图片
proxies为访问代理服务器的地址,下面的例子中增加了两个代理服务器。这样我们在访问要抓取的url是,使用的ip地址就是代理服务器的ip地址。用这歌参数可以有效的隐藏爬取时原的ip地址,有效的防止对于爬虫的逆追踪
python 爬虫基础:requests库_第17张图片
这四个是一些高级功能:

.get( ) 中的**kwargs和前面提到的 .requests ()是一样的,params是要get 的额外参数
.get( )是最常用的一个方法,因为在http协议中向url提交资源的功能在服务器上是严格守控的,因为这其中有很大的安全问题(可能会有人向url中传输一些恶意的内容),所以我们大部分的时间都只会用到“获取get”的功能。
python 爬虫基础:requests库_第18张图片

小结

最常用的其实就是下面的两个函数:
python 爬虫基础:requests库_第19张图片
需要学会的通用代码框架(网络连接有风险,异常处理很重要。一定要学会用try except来勘错):
python 爬虫基础:requests库_第20张图片

你可能感兴趣的:(python,爬虫,python,网络)