美文网首页
Python爬虫cookies

Python爬虫cookies

作者: 鹊南飞_ | 来源:发表于2020-09-10 10:47 被阅读0次
1. 发送请求添加自定义的cookie信息

  1. 方法一使用add_dict_to_cookiejar函数 添加cookies
  2. 方法二使用RequestsCookieJar对象,然后使用update函数更新cookies
  3. 方法一不能同时设置pathdomain等参数。方法二可以同时设置
  4. 使用request.session发送请求

百度cooikes如下


百度cookies
核心代码

  • 方法一
import requests

# 使用requests.session返回保持会话的对象
s = requests.session()
# cookie字典
cookie_dict = {
    "cookie_name_1": "cookie_value_1",
    "cookie_name_2": "cookie_value_2", 
    "cookie_name_3": "cookie_value_3"
}
# 使用add_dict_to_cookiejar
requests.utils.add_dict_to_cookiejar(s.cookies, cookie_dict)
  • 方法二
import requests
from requests.cookies import RequestsCookieJar

# 使用requests.session返回保持会话的对象
s = requests.session()
# 使用对象方式设置, 使用RequestsCookieJar
c = RequestsCookieJar()
# 设置cookies
c.set('cookie_name_1', 'cookie_value_1', path='/', domain='.xxx.com')
c.set('cookie_name'_2, 'cookie_value_2', path='/', domain='.xxx.com')
s.cookies.update(c)


完整代码
  • 方法一
import requests

# cookie字典
cookie_dict = {"uid": "1", "exp": "2", "server_time": "3"}
# 使用requests.session返回保持会话的对象
s = requests.session()
# 使用add_dict_to_cookiejar
requests.utils.add_dict_to_cookiejar(s.cookies, cookie_dict)
print(s.cookies.get_dict())
# {'exp': '2', 'server_time': '3', 'uid': '1'}

# get请求
url = "http://www.xxx.com"
s.get(url=url)

# post请求
# url = "https://www.xxx.com"
# data = {'pageIndex': 0, 'pageSize': 8}
# s.post(url=url, data=data, verify=False)

  • 方法二
import requests
from requests.cookies import RequestsCookieJar

# 使用requests.session返回保持会话的对象
s = requests.session()
# 使用对象方式设置, 使用RequestsCookieJar
c = RequestsCookieJar()
# 设置cookies
# c.set('cookie_name', 'cookie_value')
# c.set('cookie_name', 'cookie_value', path='/', domain='.xxx.com')
c.set('exp', '2')
c.set('server_time', '3')
c.set('uid', '1')
# 使用update函数
s.cookies.update(c)
print(s.cookies.get_dict())
# {'exp': '2', 'server_time': '3', 'uid': '1'}

# get请求
url = "http://www.xxx.com"
s.get(url=url)

# post请求
# url = "https://www.xxx.com"
# data = {'pageIndex': 0, 'pageSize': 8}
# s.post(url=url, data=data, verify=False)


2. 获取响应信息中的cookie信息

  1. 使用request.cookies获取RequestCookieJar对象
  2. 使用dict_from_cookiejar转换为字典

import requests

# get请求
url = "http://www.baidu.com"
response = requests.get(url=url)

cookies_jar = response.cookies
print(cookies_jar)
# <RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>

cookies_dict = requests.utils.dict_from_cookiejar(cookies_jar)
print(cookies_dict)
# {'BDORZ': '27315'}


相关文章

网友评论

      本文标题:Python爬虫cookies

      本文链接:https://www.haomeiwen.com/subject/tcouektx.html