1.目标网站:

https://www.fjggfw.gov.cn/ cookie具有时效性,因此需要先将cookie保存下来;

2.用requests获取cookie

requests.utils.dict_from_cookiejar:把cookiejar对象转化为字典

import requestsurl = "https://www.fjggfw.gov.cn/"
response = requests.get(url)
print(type(response.cookies))
#<class 'requests.cookies.RequestsCookieJar'>
cookies = requests.utils.dict_from_cookiejar(response.cookies)
print(cookies)
#{'ASP.NET_SessionId': '1qymmzywdxtrcgrr2luqky5m'}

结果:

对比原网站cookie

发现只返回了一个SessionId,用来请求网址数据,最后失败了,之后也试了其他方法都是失败了,

3.最后决定用selenium获取;

代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options() #以后就可以设置无界面
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('blink-settings=imagesEnabled=false')
prefs = {'profile.managed_default_content_settings.images': 2}
chrome_options.add_experimental_option('prefs', prefs)driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe",options=chrome_options)driver.get("https://www.fjggfw.gov.cn/")# 获取cookie信息
cookie = driver.get_cookies()
print(cookie)
driver.quit()

获取到的cookie

[{'domain': 'www.fjggfw.gov.cn', 'httpOnly': False, 'name': '_qddab', 'path': '/','secure': False, 'value': '4-wrq35m.k3i2yuul'}, {'domain': 'www.fjggfw.gov.cn', 'expiry': 1574908808, 'httpOnly': False, 'name': '_qdda', 'path': '/', 'secure': False, 'value': '4-
1.1nk5dz'}, {'domain': '.fjggfw.gov.cn', 'expiry': 1606443005, 'httpOnly': False, 'name':'_qddaz', 'path': '/', 'secure': False, 'value': 'QD.1ja33g.pwt51g.k3i2yusn'}, {'domain': '.fjggfw.gov.cn', 'expiry': 1606443005, 'httpOnly': False, 'name': '__root_domain_v',
'path': '/', 'secure': False, 'value': '.fjggfw.gov.cn'}, {'domain': 'www.fjggfw.gov.cn','expiry': 1574910605, 'httpOnly': False, 'name': '_qddamta_2852155767', 'path': '/',
'secure': False, 'value': '4-0'}, {'domain': 'www.fjggfw.gov.cn', 'httpOnly': True, 'name':'ASP.NET_SessionId', 'path': '/', 'secure': False, 'value': '1bhi5wmfkg2tmrfqhb3o2soa'},
{'domain': 'www.fjggfw.gov.cn', 'expiry': 1575079805, 'httpOnly': False, 'name':
'_qddagsx_02095bad0b', 'path': '/', 'secure': False, 'value':
'72f3221682dcdc0ce366262e3bdd47ebb5f9ddb9e35623cb05f5a0c6bdeda4eb9e67067bc752275df93efef8ec
cf998b607c92a6404bbf67e8be9a079be6736a05a817d8f7a0ccaee978ba6c78f5c900b5dde3c5d1835baf2f3db
7993ae491168d9f5053e3c8037b5840fe523659f1f496a06924b4b86e21be53f1dce8926b58'}, {'domain':'.fjggfw.gov.cn', 'httpOnly': False, 'name': 'Hm_lpvt_94bfa5b89a33cebfead2f88d38657023',
'path': '/', 'secure': False, 'value': '1574907005'}, {'domain': '.fjggfw.gov.cn',
'expiry': 1606443005, 'httpOnly': False, 'name': 'Hm_lvt_94bfa5b89a33cebfead2f88d38657023', 'path': '/', 'secure': False, 'value': '1574907005'}]

发现就是需要的,不过放在了不同的dict中,稍微处理下:

cookie_dict = {}
for item in cookie:key = item["name"]value = item["value"]cookie_dict[key] = valueprint(cookie_dict)

若不想再处理的话,且用driver继续请求的话,直接下面这样处理也是可以的

for item in cookie_list: driver.add_cookie({'domain': 'www.fjggfw.gov.cn','name': item['name'],'value': item['value'],'path': '/','expires': None
})driver.get(url)

OK,和我们要的cookie是一样的了,请求时带上这个cookie即可.

selenium+webdriver操作cookie相关推荐

  1. selenium ie 操作cookie_Python3中selenium 怎么操作Cookie?

    webdriver提供了操作Cookie的相关方法,可以读取,添加和删除cookie信息. webdriver操作cookie()的方法: get_cookie(): 获得所有cookie信息. ge ...

  2. webdriver操作cookie

    有时候我们需要验证浏览器中cookie是否正确,因为基于真实cookie的测试是无法通过白盒和集成测试进行的.WebDriver提供了操作Cookie的相关方法,可以读取.添加和删除cookie信息. ...

  3. c 后台代码调用ajax,.NET Selenium WebDriver操作调用浏览器后台执行Js(JavaScript)代码...

    1.Selenium WebDriver安装引用 注意:要用使用的浏览器肯定要装,并且Selenium.Chrome.WebDriver版本要和浏览器版一致. 如果要操作其它浏览器,则安装对应其它浏览 ...

  4. Selenium Webdriver——操作隐藏的元素(三)switchTo().frame()

    在web 应用中经常会遇到frame 嵌套页面的应用,页WebDriver 每次只能在一个页面上识别元素,对 于frame 嵌套内的页面上的元素,直接定位是定位是定位不到的.这个时候就需要通过swit ...

  5. selenium 操作 html 5,[Selenium] WebDriver 操作 HTML5 中的 video

    测试播放,停止播放 http://www.videojs.com/ 示例: package com.learningselenium.html5; import static org.junit.As ...

  6. selenium webdriver操作chrome options、 启用无痕模式、缓存烦恼

    当启用浏览器打开网页的时候,可以直接启用无痕模式,省去清理缓存这一步骤. 初始化ChromeOptions 并设置"–incognito" ChromeOptions option ...

  7. selenium webdriver操作chrome 启用无痕模式,摆脱清缓存烦恼

    当启用浏览器打开网页的时候,可以直接启用无痕模式,省去清理缓存这一步骤. 初始化ChromeOptions 并设置"–incognito" ChromeOptions option ...

  8. Selenium的文件上传和操作Cookie等方法_Sinno_Song_新浪博客

    一.文件上传 通过input标签实现的上传功能,可以将其看作是一个输入框,即通过send_keys()指定本地文件路径的方式实现文件上传. 示例:driver.find_element_by_name ...

  9. python 模拟浏览器selenium_使用python selenium webdriver模拟浏览器

    原博文 2016-12-18 18:26 − selenium是进行web自动化测试的一个工具,支持C,C++,Python,Java等语言,他能够实现模拟手工操作浏览器,进行自动化,通过webdri ...

最新文章

  1. ckeditor5加字数_CKEditor5基本使用
  2. python字符串出现次数最多的_python – Pandas:获取组中出现次数最多的字符串值...
  3. (九)Spring 事务开发、事务属性详解
  4. 基本定时器TIM6和TIM7使用
  5. Qt文档阅读笔记-最简单的动态3D圆环实例
  6. 安卓音量阶数修改_16款手机UI随便用,音量调节原来可以这样玩
  7. 解决zabbix-4系列监控图形中文乱码问题
  8. 31.go 函数式编程
  9. 基于rdf的php编程,RDF 简介
  10. 优化器,sgd,adam等
  11. OpenJudge NOI题库 入门 116题 (二)
  12. 检测卡常见错误:1A、1B、20、21、22
  13. 计算机原理74181芯片,计算机组成原理
  14. python网络数据采集 第二版_Python网络数据采集 (影印版)第2版
  15. 光耦电流传输比(CTR)的理解
  16. linux自带查看端口流量命令,iftop命令查看linux系统网卡流量的命令
  17. VS2005宏无法运行的问题(打了补丁MS14-009之后)
  18. 百度云服务器ping不通,云主机ping的通三节点,但是ping不通百度
  19. 2022年低代码关键点:GeneXus即将推出什么
  20. 云服务器查看操作系统,如何查看云服务器的操作系统

热门文章

  1. 赛思信安:实现数据全生命周期管理
  2. 谁动了我的奶酪[By tina]
  3. 微信小程序购物车组件
  4. C语言 数组在定义时长度不能用变量
  5. 石家庄计算机专接本教育机构哪个好,河北专接本哪个院校比较好?
  6. “新冠是骗局!逮捕比尔· 盖茨!”
  7. 【jQuery】【购物车页面】实现近乎完美的联动交互(附GIF)
  8. k8s1.27.2 kubeadm 高可用安装
  9. [JAVA]使用if…else语句编写代码。定义一个整型变量a,为其赋值为20,判断20是奇数还是偶数,如果为奇数,输出“a是奇数”,否则输出“a是偶数”
  10. 开启智慧未来,三星S8虹膜识别酷炫来袭!