第一周单元1:Requests库入门

Http协议对资源的操作

方法                说明 

GET:请求获取URL位置的资源 

HEAD:请求获取URL位置资源的响应消息报告,即获得该资源的头部信息 

POST:请求向URL位置的资源后附加新的数据 

PUT:请求向URL位置存储一个资源,覆盖原URL位置的资源 

PATCH:请求局部更新URL位置的资源,即改变该处资源的部分内容 

DELETE:请求删除URL位置存储的资源


PATCH和PUT的区别:

假设URL位置有一组数据UserInfo,包括UserID、UserName等20个字段
需求:用户修改了UserName,其他不变
• 采用PATCH,仅向URL提交UserName的局部更新请求
• 采用PUT,必须将所有20个字段一并提交到URL,未提交字段被删除
PATCH的最主要好处:节省网络带宽


**kwargs: 控制访问的参数

files   : 字典类型,传输文件 

timeout : 设定超时时间,秒为单位 

proxies : 字典类型,设定访问代理服务器,可以增加登录认证 

allow_redirects: True/False,默认为True,重定向开关 

stream  : True/False,默认为True,获取内容立即下载开关 

verify  : True/False,默认为True,认证SSL证书开关 

cert    : 本地SSL证书路径

proxies : 字典类型,设定访问代理服务器,可以增加登录认证            

>>> pxs={'http':'http://user:pass@10.10.10.1:1234' 
                'https':'https://10.10.10.1:4321'} 
>>> r=requests.request('GET','http://www.baidu.com',proxies=pxs)

response的异常:

r.raise_for_status():如果不是200,产生异常requests.HTTPError

r = requests.get(url)

r.raise_for_status()在方法内部判断r.status_code是否等于200,不需要增加额外的if语句,该语句便于利用try‐except进行异常处理

爬取网页通用代码框架:

# coding:utf-8
import requests

try:
    r = requests.get(url="http://www.baidu.com", timeout=30)
    r.raise_for_status()    # 若返回的状态码不是200,将产生一次异常
    r.encoding = r.apparent_encoding
    print(r.text)           # 教程用return,此处用return报错
except:
    print("Error")          # 教程用return,此处用return报错
原文地址:https://www.cnblogs.com/p36606jp/p/15113872.html