发送POST请求 使用代理 处理cookies session

哪些地方我们会用到POST请求:


登录注册( POST 比 GET 更安全)


需要传输大文本内容的时候( POST 请求对数据长度没有要求)


所以同样的,我们的爬虫也需要在这两个地方回去模拟浏览器发送post请求


用法:


response = requests.post("http://www.baidu.com/", data = data,headers=headers)


data 的形式:字典



问题:为什么爬虫需要使用代理?


让服务器以为不是同一个客户端在请求


防止我们的真实地址被泄露,防止被追究


用法:requests.get("http://www.baidu.com", proxies = proxies)


proxies的形式:字典


proxies = { 
"http": "http://12.34.56.79:9527", 
"https": "https://12.34.56.79:9527", 
}



cookie和session区别:


cookie数据存放在客户的浏览器上,session数据放在服务器上。


cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗。


session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。


单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。


爬虫处理cookie和session


带上cookie、session的好处:

能够请求到登录之后的页面

带上cookie、session的弊端:

一套cookie和session往往和一个用户对应

请求太快,请求次数太多,容易被服务器识别为爬虫


不需要cookie的时候尽量不去使用cookie


但是为了获取登录之后的页面,我们必须发送带有cookies的请求


cookie和session区别:

cookie数据存放在客户的浏览器上,session数据放在服务器上。
cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗。
session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。
单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie


处理cookies 、session请求

requests 提供了一个叫做session类,来实现客户端和服务端的会话保持

使用方法:

1.实例化一个session对象
2.让session发送get或者post请求

session = requests.session()
response = session.get(url,headers)

Requests小技巧

1、reqeusts.util.dict_from_cookiejar  把cookie对象转化为字典
1.1. requests.get(url,cookies={})
2、请求 SSL证书验证
        response = requests.get("https://www.12306.cn/mormhweb/ ", verify=False)
3、设置超时
        response = requests.get(url,timeout=10)
4、配合状态码判断是否请求成功
       assert response.status_code == 200


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值