# 一、 Requests 定义:用python语言编写,基于urllib,采用Apache2 Licensed 开源协议的HTTP库。简单来说,Requests就是用python实现的简单易用的HTTP库。
# 二、 示例: 打印响应的类型、状态码、内容、cookies
#
# 三、 请求(request)
# 1> requests的各种请求方式:
#
# 2> 基本GET请求
# 1)基本写法: 打印请求头、URL链接、ip地址等
#
# 2)带参数的GET请求:打印请求头、URL链接、ip地址、请求参数等
# 用?&等符号添加请求参数(繁琐)
#
# 创建一个字典作为请求参数
#
# 3)json解析(将返回结果转码成json对象,常用于Adjust请求时)
#
# Adjust请求
#
# 4)获取二进制数据
# 获取二进制数据
#
# 获取二进制数据,并将文件保存到本地
#
# 5)添加headers(不添加headers可能会出现禁掉或者出现服务器错误)
# 不加headers
#
# 加headers
#
#
# 3>基本POST请求(直接传入一个字典)
# 1)不加headers
#
# 2)加headers(并转码为json对象打印)
#
# 四、 响应(response)
# 1> response 属性
# 状态码、请求头、cookies、url、访问的浏览历史
# 2> 状态码判断
#
#
# 状态码大全:http://tools.jb51.net/table/http_status_code
#
# 五、 高级操作
# 1> 文件上传(上传的文件为 favicon.ico ,上传的文件命名为 file )
#
# 2> 获取cookie
#
# 3> 会话维持(模拟登录使用)
# requests.Session() 维持会话信息,在接下来的登陆页面不需要登陆(实验失败)
#
# 应为:
#
# 4> 证书验证
# https协议首先会检测证书是否合法,不合法会抛出SSLError错误,若不需要验证合法性,则需加verify=False参数,但是依然会警告,要消除警告信息,可以导入requests库中的urllib3.disable_warnings()包。也可以通过传递参数使默认使用一个合法证书进行验证。
#
# &&我自己进行12306网站验证时显示网站合法,所以并没有报错
#
# 5> 代理设置
# 利用proxies参数进行设置代理,当你的软件不支持http/https协议时,也可以通过安装socks进行socks5/socks4协议进行代理设置
#
# &&自己的电脑上调不出来代理
# 6> 超时设置
# 设置一个timeout参数,当在规定时间内没有做出应答,会抛出一个异常,即限制服务器应答速度。
#
# 当网页请求超时,可以使用抛出ReadTimeout异常解决
#
# 7> 认证设置
# 如果需要爬去一个需要用户名和密码的网站,可以通过传输一个auth参数进行登录爬取。
# 以下两种请求方式是相同的
#
# 8> 异常处理(可以自己去查看requests库异常处理的官方文档)
#
# 感觉慢慢学起来没有那么难了,等学完网课,去买崔庆才老师的书(python3网络爬虫开发实战)