python selenium 绕过12306反爬虫机制

破解网站根据 window.navigator.webdriver属性来判断是否使用自动化工具登录

找到chrome驱动程序,右键使用notepad++或笔记本打开,使用ctrl+F快捷键查找$cdc

将asdjflasutopfhvcZLmcfl中的任何一个或多个字母变成任意其他字母,并保持字符串长度不变

我改成了$cdc_abdjflasutopfhvcZLmcfl_保存即可。

然后设置chrome以开发者模式启动

option =webdriver.ChromeOptions();#添加启动配置
option.add_experimental_option('excludeSwitches', ['enable-automation'])#屏蔽chrome自动化受控提示
option.add_argument("--disable-blink-features=AutomationControlled")#禁用启用Blink运行时的功能去掉webdriver痕迹
#打开浏览器
chrome_browser=webdriver.Chrome(chrome_options=option,executable_path='F:\python\chrome驱动\chromedriver.exe')

 设置完后 即可成功登录12306

#跳转到12306首页
chrome_browser.get('https://www.12306.cn/index/index.html')
#休眠1秒
time.sleep(2)
#找到登录按钮
login=chrome_browser.find_element_by_link_text('登录')
#点击登录
login.click()
#输入用户名和密码
username='你的12306账号'
userpasswd='你的12306密码'
chrome_browser.find_element_by_id('J-userName').send_keys(username)
time.sleep(1)
chrome_browser.find_element_by_id('J-password').send_keys(userpasswd)
time.sleep(1)
#点击立即登录
now_login=chrome_browser.find_element_by_id('J-login')
now_login.click()
time.sleep(2)
#模拟人的拖动速度
time1 = [2, 4, 3, 5, 3.1, 3.7, 2.8, 2.9, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7,
                     3.8, 3.9, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5.0, 5.1, 5.2]
t1 = random.choice(time1)
def get_track(distance, t):  # distance为传入的总距离,a为加速度
    track = []
    current = 0
    mid = distance * t / (t + 1)
    v = 0
    while current < distance:
        if current < mid:
            a = 3
        else:
            a = -1
        v0 = v
        v = v0 + a * t
        move = v0 * t + 1 / 2 * a * t * t
        current += move
        track.append(round(move))
    return track
#生成随机拖动
mytrack=get_track(300,t1)
#验证模块
#定位验证弹出框
verify_action=chrome_browser.find_element_by_id('nc_1_n1z')
# 按住滑块
ActionChains(chrome_browser).click_and_hold(verify_action).perform()
time.sleep(0.15)
for x in mytrack:
    # 移动滑块
    ActionChains(chrome_browser).move_by_offset(x, 0).perform()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值