爬虫中Cookies 和 Sission的区别 , 超时设置
2023-12-15 21:14:29
Cookies 和 Sission
1.1 cookie和session的区别
cookie数据存放在客户的浏览器上,session数据放在服务器上
cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗
session会在一定时间内保b存在服务器上,当访问增多,会比较占用你服务器的性能
单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie
1.2 爬虫中问什么要使用cookie
带上cookie的好处:
? 能够访问登录后的页面
? 正常的浏览器在请求服务器的时候会带上cookie(第一次请求除外),所以对方服务器有可能会通过是否携带cookie来判断我们是否是一个爬虫,对应的能起到一定的反爬效果
带上cookie的坏处:
? 一套cookie往往对应的是一个用户的信息,请求太频繁有更大可能性被对方识别为爬虫
? 那么,面对这种情况如何解决----使用多个账号
1.3 requests处理cookie相关的请求之session
requests提供了一个叫做session类,来实现客户端和服务端的会话保持
会话保持有两个内涵:
? 保存cookie
? 实现和服务器的长连接
Cookies
如果一个响应中包含了cookie,那么我们可以利用 cookies参数拿到:
import requests
response = requests.get("http://www.baidu.com/")
# 7\. 返回CookieJar对象:
cookiejar = response.cookies
# 8\. 将CookieJar转为字典:
cookiedict = requests.utils.dict_from_cookiejar(cookiejar)
print (cookiejar)
print (cookiedict)
session
在 requests 里,session对象是一个非常常用的对象,这个对象代表一次用户会话:从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开。
会话能让我们在跨请求时候保持某些参数,比如在同一个 Session 实例发出的所有请求之间保持 cookie 。
import requests
# 创建一个session对象
s = requests.session()
# 通过session对象发请求
s.get('https://www.baidu.com/')
response = s.get('https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=python&fenlei=256&rsv_pq=0xa7948b5d00151ad4&rsv_t=d71fImFoqkgjlERKUqeQ5yYhnF3QMpfLrwwzluexY9jqhRHMfCrJOiIDuI5I&rqlang=en&rsv_enter=1&rsv_dl=tb&rsv_sug3=7&rsv_sug1=6&rsv_sug7=101&rsv_sug2=0&rsv_btype=i&prefixsug=python&rsp=5&inputT=1278&rsv_sug4=1849&rsv_sug=2')
print(response.text)
超时设置
url= 'https://www.baidu.com'
# timeout等待时间 单位为秒
r = requests.get(url,timeout = 0.000000003)
print(r.status_code)
文章来源:https://blog.csdn.net/xiugtt6141121/article/details/135024107
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!