爬虫中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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。