下面我会分不同的章节来系统的讲解简单的爬虫。
爬虫用到的大约有四个库:
一,Requests库 获得信息
二,BeautifulSoup库 解析信息内容
三,正则表达库 对关键信息提取
四,Scrapy库 框架介绍
这一篇博客我将给大家讲解requests库的用法,以及通过五个例子来教会大家运用。
Requests库主要有七个用法:
1,requests.request() 请求一个构造来支撑下面的方法
2,requests.get() 获取HTML网页的主要方法,对应HTTP的GET
3,requests.post() 向网页提交post请求的方法
4,requests.head() 获取HTML网页头文件的方法
5,requests.put() 向网页提交put请求的方法
6,requests.patch() 向网页提价局部修改请求
7.requests.delete() 向HTML页面提交删除请求
以上的这七种方法也对应着HTTP的七个方法。
通过以上这几个方法我们可以简单的获取一个页面的信息,我们以百度网站为例
import requests
#引入requests库
r = requests.get("hettp://www.baidu.com/")
#使用get方法对后面的网址进行一个访问
print(r.statue_code)
#查看访问的状态码,如果是200则访问成功。
print(r.headers)
#打印网址的头部信息
通过以上的操作我们便爬取到了这个网页的信息
对于爬取回来的信息一般有以下五个属性:
1,r.statue_code HTTP请求返回的状态码,200为成功
2,r.text HTTP响应内容的字符串形式
3,r.encoding 从 HTTP header中猜测内容的编码形式
4,r.appparent_encoding 从内容中分析编码形式
5,r.content 内容的二进制形式
(r.encoding是根据http中的charset分析编码形式,若没有charest则返回”ISO-8859-1“
此时如果想要看懂文件只需将r.apparent_encoding的值赋给r.encoding即可)
requests库的六种异常:
1,requests.ConnectionError 网络连接异常
2,requests.HTTPError HTTP错误异常
3,requests.URLReqired URL缺失异常
4,requests.TooManyRedirects 超过最大重定向次数,产生重定向异常
5,requests.ConnectTimeout 连接远程服务器超时异常
6,requests.Timeout 请求URL超时,产生异常
当我们面对以上六种异常时,我们可以去检查他的错误点,来解决此次异常
通用框架(利用try-except模板来防止异常使得程序异常执行)[对于try-except模板不懂的可以看看这篇文章]
python中的文件与异常的详解https://blog.csdn.net/Cobrander2_0/article/details/127484340
import requests
def Get_Urltext(url):
try:
r = requests.get(url,timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
exceptt:
return "产生异常"
if_ _name_ _=="_main_"
url="hettp://www.baidu.com/"
print(Get_Urltext(url))
在requests.requests(method,url,**kwargs)中
method就是GET,POST等方法
**kwargs中包含着十三个访问参数
这十三个访问参数起了至关重要的作用
1,params:字典或字节序列
import requests
kv={'key':'value'}
r=requests.request('GET','hettp://www.baidu.com/',params=kv)
print(r.url)
以下是输出结果
http://www.baidu.com/?key:value
这样可以在返回爬取的内容时根据后面的键值对进行选择
2,data:字典,字节序列或文件对象,将data传入到url之中
import requests
kv={“key1”:“value1”,“key2”:“value2”}
r=requests.request(“POST”,“http://www.baidu.com”,data=kv)
print(r.text)
我们会发现这个data参数会将kv字典直接写入到url之中
3,JSON :作为内容部分将url提交
4,headers :可以修改头部信息的访问请求,将爬虫伪装成为一个浏览器向网页发起访问
5,cookies:从HTTP协议中解析cookie
6,auth:元组,支持HTTP认证功能
7,files:字典类型,传输文件
8,timeout:设定超时时间
9,proxies:字典类型,可以设定访问代理服务器,也可增加用户名和密码这个选项
eg:pxs={‘hettp’:'hettp://user:[email protected]:1234','hettps':'htttps://10.10.10.1:1234'}
设置了用户的代理地址,可以防止对于爬虫的逆追踪
10,allow_redirects:True/False 对于是否允许对url进行重定向操作(相当于一个开关)
11,stream:True/Flase 对于是否允许对获取内容进行下载(相当于一个开关)
12,verity:True/False对于是否认证ssl证书(相当于一个开关)
注意:网络不是法外之地,爬虫也不是牟利工具,正确运用爬虫知识。
以上就是小编给大家分享的requests库的理论知识,实战操作将在不久后更新。