python 使用selenium解决cookie问题

废话不多说,直接开干!
咨询群里大佬!说是:

Chrome如何设定webdriver=undefined以避免Selenium检测问题

于是乎跟着思路去探索,果然找到有效cookie,之前请求一直没有有效cookie!再次感谢这位好心大佬!
借用别人劳动代码如下:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

from selenium import webdriver

driver = webdriver.Chrome()
script = '''
Object.defineProperty(navigator, 'webdriver', {
    get: () => undefined
})
'''
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script})
driver.get("YOUR_URL")
# 在控制台中验证window.navigator.webdriver的值为undefined。
driver.quit()

然后进行整合全部代码:

# coding=utf-8
import requests
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time, random
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.chrome.options import Options
import re
import json
# import redis
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome('D:\chrome\chromedriver.exe')


time.sleep(random.uniform(1, 3))
driver.get('https://192.168.1.1100/soubei/login?spm=1607398886722')
wait = WebDriverWait(driver,2)
cookies = cookies = {'value': 'E7E4FF92255985420FD71FBC81BC37C6','name': 'ketangpai_home_remember'} #特别注意这里一定要设置cookie,然后配合使用
driver.add_cookie(cookie_dict=cookies)
user_name = 'admin'
user_password = '123456'


WebDriverWait(driver,60,1).until(EC.presence_of_element_located((By.XPATH,'//input[@id="user-name"]')))
# driver.find_element_by_name('user-name').clear()
driver.find_element_by_xpath('//input[@id="user-name"]').send_keys(user_name)
time.sleep(random.uniform(0.3, 1.2))

WebDriverWait(driver,60,1).until(EC.presence_of_element_located((By.XPATH,'//input[@id="password"]')))
# driver.find_element_by_name('password').clear()
driver.find_element_by_xpath('//input[@id="password"]').send_keys(user_password)
time.sleep(random.uniform(0.3, 1.2))
# 提交
driver.find_element_by_xpath('//*[@id="login-submit"]').click()


time.sleep(1)
script = '''
Object.defineProperty(navigator, 'webdriver', {
    get: () => undefined
})
'''
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script})
driver.get("https://192.168.1.100/soubei/card/card/subsystem?systime=1608013694315")
time.sleep(1)
driver.refresh()
dictCookies = driver.get_cookies()
print(dictCookies)
for ii in dictCookies:
    cookie = ii['value']
    print(cookie)


cook = dictCookies[1]['value']
print(cook)
time.sleep(3)

cookie ='JSESSIONID={}; ketangpai_home_remember=E7E4FF92255985420FD71FBC81BC37C6'.format(cook)

print(cookie)

得到解决如下,然后拿个这个cookie去请求果然有效!

JSESSIONID=6D13A21601624F14624CE46B8B84E717; ketangpai_home_remember=E7E4FF92255985420FD71FBC81BC37C6

关注公众号:
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值