1.get请求
- 基本实例
其中返回的结果
包含请求头,URL,IP等等信息,对于get请求,如果需要增加其他的信息,使用params参数可以进行传递
params参数是通过字典的方式进行传递参数的
同时网页返回的结果应该为str类型,但是可以直接使用json,将其转换为json类型
注意:如果返回的结果不是为json类型,就会出现解析错误,抛出json.decoder.JSONDecodeError错误
- 抓取网页
- 抓取二进制文件
这个结果是一串我们无法进行识别的乱码
原因:由于图片数据是二进制数据,所以在打印的时候会转化为str类型,也就是图片直接转化为字符串
解决方式:
使用with方法进行解决,其中的第一个参数表示要打开的文件,第二个参数使用用二进制写的打开文件
- 请求头方法
就是往get的headers参数里面添加user-agent字段信息,当然也可以添加任意的信息,前提是为字典类型
2.POST请求
其中返回结果的form就是我们所提交的数据
3.响应
4.高级用法
- 文件上传
- Cookie设置
以github里面的cookie为例
其中返回的结果会包含github,用户名姓名信息等
- Session维持
使用get或post方法确实可以做到模拟网页的请求,但是这两种方法相当于不同的Session,无法实现使用post登录后,再使用get获取数据
使用get方法去进行检验,会发现无法保存对应的cookie
- SSL证书验证
当不添加的时候,会参数SSLError错误
- 超时设置
timeout 参数
- 身份验证
会返回200的状态码,表示成功的连接上
- 代理设置
当我们进行少量的爬取时不会存在影响,但是当我们大量的爬取时,可能会弹出验证码,或者跳转到登录界面,更有甚者会直接封禁账号
这个代理是无效的,我们可以在网上进行搜索,然后进行替换验证