爬虫第一节:requests库的使用(理论篇)

下面我会分不同的章节来系统的讲解简单的爬虫。

爬虫用到的大约有四个库:

一,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中的文件与异常的详解icon-default.png?t=M85Bhttps://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库的理论知识,实战操作将在不久后更新。

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