python爬虫基础requests库的使用以及参数详解

更新时间:2020-05-21 14:00:21点击次数:213次
1、简单介绍requests的使用方法
以百度网站为例:

import requests
r = requests.get('http://www.baidu.com')

print(r.status_code)

调用status_code后,会返回一个值,如果返回值为200,则代表访问成功。
接着使用text查看内容:

print(r.text)

我们会发现有许多乱码,因此就需要改变编码方式。

print(r.encoding)
print(r.apparent_encoding)
r.encoding = r.apparent_encoding
# 也可以这样写
# r.encoding = 'utf-8'


encoding方法是从HTTPheader中猜测响应内容的编码,但如果header中不存在charset字段,就默认编码为ISO-8859-1,而apparent_encoding则是从内容中分析编码,只需将它赋给encoding 即可。

下面是爬虫通用代码框架:

import requests
try:
url = 'http://www.baidu.com'
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text)
except:
print("爬取失败")

r.raise_for_status()用来判断status_code的返回值,如果不是200,则返回一个HTTPError异常。

2、爬虫中六种常用的异常处理。
异常 说明
requests.ConnectionError 网络连接错误异常, 如DNS查询失败,拒接连接等
requests.HTTPError HTTP错误异常
requests.URLRequired URL缺失异常
requests.TooManyRedirects 超过最大重定向次数,产生重定向异常
requests.ConnectTimeout 连接远程服务时,超时异常
requests.Timeout 请求URL超时, 产生超时异常
3、requests库的七个主要方法。
3.1 七个主要方法
方法 说明
requests.request() 构造一个请求,支撑以下各种方法的基础方法
requests.get() 获取HTML网页的主要方法,对应于HTTP的GET
requests.head() 获取HTML网页头信息的方法, 对应HTTP的HEAD
requests.post() 向HTML网页提交POST请求的方法, 对应于HTTP的POST
requests.put() 向HTML网页提交PUT请求的方法,对应于HTTP的PUT
requests.patch() 向HTML网页提交局部修改请求,对应于HTTP的PATCH
requests.delete() 向HTML页面提交删除请求,对应于HTTP的DELETE
3.2 HTTP协议对资源的操作
方法 说明
GET 请求获取URL位置资源
HEAD 请求获取URL位置资源的响应报告,即获得该资源的头部信息
POST 请求向URL位置的资源后添加新的数据
PUT 请求向URL位置储存一个资源,覆盖原URL位置的资源
PATCH 请求局部更新URL位置的资源,即改变该处资源的部分内容
DELETE 请求删除URL位置储存的资源
4、requests库方法的参数详解
4.1 request()参数(requests.request(method, url, **kwargs))
4.1.1 method
请求方式,对应GET、POST、PUT等七种操作方法

4.1.2 url
文本连接

4.1.3 **kwargs对应的13个参数
参数 说明
params 字典或字节序列,作为参数增加到url中
data 字典,字节序列或文件对象,作为request的内容
json JSON格式的数据,作为request的内容
headers 字典,HTTP定制头
cookies 字典或CookieJar, request中的cookie
auth 元组,支持HTTp认证功能
files 字典类型,传输文件
timeout 设定超时时间,秒为单位
proxies 字典类型,设定访问代理服务器,可以增加登录认证
allow_redirects 重定向开关,默认为True
stream 获取内容立即下载开关,默认为True
verify 认证SSL证书开关,默认为True
cert 本地SSL证书路径
4.1.4 具体使用方法
以params和headers为例,其他类似:

import requests

kv1 = {'key1': 'value1', 'key2': 'value2'}
kv2 = {'User-Agent': 'chrome'}
url = 'http://www.baidu.com'
r1 = requests.request("GET", url, params=kv1)
r2 = requests.request('POST', url, headers=kv2)

# 使用params后
print(r1.url)

# 原User-Agent显示为python爬虫
print(r1.request.headers)

# 伪装为谷歌浏览器chrome进行访问后的User-Agent
print(r2.request.headers)


结果:


4.2 其他六个方法的参数
1、 requests.get(url, params=None, **kwargs)
2、 requests.head(url, **kwargs)
3、 requests.post(url, data=None, json=None, **kwargs)
4、 requests.put(url, data=None, **kwargs)
5、 requests.patch(url, data=None, **kwargs)
6、 requests.delete(url, **kwargs)
对应参数即为上面内容。

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息