python爬虫cookie会变化_python爬虫中使用cookie会出现哪些问题?

不知道小伙伴们有没有这样的体验,我们写好一段代码之后进行运行测试。出现报错了就要开始找原因,可是在重新回顾代码的时候居然会多出来一些东西,这就会很让人困惑了。同样最近小编在学习cookie的时候也遇到了这种情况,不过已经通过我们之前学习的headers这个知识点解决了,下面大家一起来看看吧。

以访问百度为例:import requests

conn = requests.session()

resp = conn.get('https://www.baidu.com/s?wd=findspace')

# 打印请求的头

print(resp.request.headers)

# 打印结果如下,requests已经自动填充了部分数据

{'Connection': 'keep-alive', 'User-Agent': 'python-requests/2.4.3 CPython/3.4.2 Linux/3.16.0-4-amd64', 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate'}

# 再访问一次:

resp = conn.get('https://www.baidu.com/s?wd=findspace')

print(resp.request.headers)

{'Connection': 'keep-alive', 'User-Agent': 'python-requests/2.4.3 CPython/3.4.2 Linux/3.16.0-4-amd64', 'Accept': '*/*', 'Cookie': 'BD_NOT_HTTPS=1; BDSVRTM=3; PSTM=1458389621; BIDUPSID=9CB03BE7D7F436EC2EE23C6E6EBE8EBD', 'Accept-Encoding': 'gzip, deflate'}

可以看到请求中已经自动加上了cookie,但是也可以看到,user-agent是'python-requests/2.4.3 CPython/3.4.2 Linux/3.16.0-4-amd64',可以通过设置headers的方法来设置headers = {

"method": "POST",

"scheme": "https",

"version": "HTTP/1.1",

"accept": "*/*",

"accept-encoding": "gzip, deflate",

"accept-language": "en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4",

"content-type": "application/x-www-form-urlencoded;charset=UTF-8",

"dnt": "1",

"faces-request": "partial/ajax",

"origin": "https://www.baidu.com",

"referer": "https://www.baidu.com",

}

resp = conn.get(url, headers=headersm timeout=60)

注意此时的头会和requests填充的头相互补充,但是用户自定义的头具有高优先级。比如,你在headers里填充cookies为自己的数据,则在本次请求中会覆盖requests之前给你保存的cookies。 也就不用像前文一样去手动保存cookie了。

下次小伙伴们使用cookie出现错误时,可以看看是不是遇到了跟小编一样的情况。学会的小伙伴也可以保存一下方法,避免遇到的时候不知所措,本期对于cookie的分享到这里就结束啦。更多Python学习指路:PyThon学习网教学中心。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值