Python(爬虫)--requests模块的高级用法

目录

前言

一、准备

1、常见的响应状态码

2、fake_useragent模块的介绍

安装fake_useragent

fake_useragent的简单使用

二、requests模块的高级用法

1、设置cookie

2、Session维持

3、ssl证书验证

4、超时设置

5、身份认证(基本身份认证网站)

6、代理设置

7、put请求


前言

在上一篇文章中介绍了requests的基础用法,本文将是requests的高级用法Python(爬虫)--requests模块的高级用法_第1张图片


一、准备 Python(爬虫)--requests模块的高级用法_第2张图片                               

1、常见的响应状态码

  • 200 - 请求成功
  • 301 - 资源(网页等)被永久转移到其它URL
  • 302 -资源(网页等)被临时转移到其他URL
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误

2、fake_useragent模块的介绍

在设置请求头的时候要经常到浏览器开发者工具中找请求头信息,相当的繁琐,下面我们可以使用fake_useragent模块自动生成可用的请求头信息

安装fake_useragent

pip install fake_useragent

fake_useragent的简单使用

from fake_useragent import UserAgent
ua=UserAgent()
print(ua.random)
headers={
    'user-agent':ua.random
}

自动生成的请求头

二、requests模块的高级用法Python(爬虫)--requests模块的高级用法_第3张图片

1、设置cookie

访问有的网站需要进行登录认证,直接请求将会获取不到数据,那如何解决这种问题呢?比较简单的方式就是携带cookie信息进行请求。

  • 登录Scrape | Movie(崔大神的网站)复制cookie信息,用户名密码可为admin,admin
  • 使用headers参数设置cookie,使用fake_useragent模块生成随机请求头
  • 请求此网站如果没有携带cookie信息,将会跳转到登录页面(allow_redirects参数,用来控制是否重向,默认是True,由此来排除请求被重定向后到登录页面响应成功的情况)
  • 响应是200,cookie设置生效

代码如下:

from fake_useragent import UserAgent
headers={'user-agent':UserAgent().random,#使用fake_useragent模块随机生成请求头
'cookie':'sessionid=6zogmfbqy3a4mk9h53qd1l4nuuw8kzw4'}
response=requests.get(url='https://login2.scrape.center/',headers=headers,allow_redirects=False)#allow_redirects用来设置是否页面跳转重定向,默认是True
print(response.status_code)

2、Session维持

有时候需求不仅仅进行一次requests请求,在遇到需要登录的网站时,需要多次设置cookie信息,如果你觉得这有些繁琐可以使用Session维持,这将会解决这个问题。

  • 在服务器端用Session对象来记录用户
  • 每个Session对象都用有一个唯一的SessionId
  • 这个SessionId以cookie的形式发给浏览器端,如果浏览器携带此cookie信息进行请求,那么它将会在服务器端找到对应的Session对象,获取到相应的权限和资源。

代码如下:

session=requests.Session()
requests.utils.add_dict_to_cookiejar(session.cookies,{'sessionid':'6zogmfbqy3a4mk9h53qd1l4nuuw8kzw4'})#设置cookie信息并传入session中
#使用Session维持
response=session.get(url='https://login2.scrape.center/',allow_redirects=False)
print(response.status_code)
second_response=session.get(url='https://login2.scrape.center/')
print(second_response.status_code)
#不适用Session维持
test_response=requests.get(url='https://login2.scrape.center/',allow_redirects=False)
print(test_response.status_code)

 

3、ssl证书验证

SSL 证书遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有“服务器身份验证”和“数据传输加密功能”

  • SSL证书也是HTTPS证书
  • 使用requests模块进行请求时默认认证ssl证书,虽然很多网站都要求使用HTTPS证书,但是有的网站并没有设置HTTPS证书或者证书失效
  • verify设置是否验证证书,verify参数默认是True

代码如下:

url='https://ssr2.scrape.center/'
response=requests.get(url,allow_redirects=False,verify=False)
print(response.status_code)

Python(爬虫)--requests模块的高级用法_第4张图片

4、超时设置

由于各种原因网站的响应可能会不及时,如果使用requests模块请求遇到这种情况的话可能会报错,那么要解决这种情况可使用timeout参数。

  • 连接超时指的是在你的客户端实现到远端机器端口的连接时,Request 会等待的秒数。
  • 读取超时指的就是客户端等待服务器发送请求的时间。
  • 设置请求方法中timeout参数即可
  • 而timeout设置的时间作用于连接和读取中的超时设置

5、身份认证(基本身份认证网站)

auth参数可设置

代码如下


url='https://ssr3.scrape.center/'
response=requests.get(url,allow_redirects=False,auth=('admin','admin'))
print(response.status_code)

6、代理设置

proxies参数 形式:

proxies={'https':'https://host:port'}

requests.get('https://www.httpbin.org/get',proxies=proxies)

基于socks的代理设置

proxies={'https':'socks5://user:password@host:port'}

requests.get('https://www.httpbin.org/get',proxies=proxies)

7、put请求

put请求可用来上传文件

代码如下:

files={'file':open('favicon.ico','rb')}
response_put=requests.put('https://www.httpbin.org/put',files=files)
print(response_put.text)

Python(爬虫)--requests模块的高级用法_第5张图片

Python(爬虫)--requests模块的高级用法_第6张图片本文仅用于交流学习,别忘了点赞哦,你的认同将是我的动力。

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