@selenium 模拟登录

#!/usr/bin/env python
# coding:utf-8from chaojiying import Chaojiying_Client
from selenium import webdriver
from time import sleep
from PIL import Image
from selenium.webdriver import ActionChainsurl = 'https://kyfw.12306.cn/otn/resources/login.html'
bro = webdriver.Chrome(executable_path='./chromedriver')
bro.maximize_window()
bro.get(url)
btn = bro.find_element_by_link_text('账号登录')
sleep(1)
btn.click()
sleep(3)# 获取验证码图片
# # 方法一,截取全屏,获取验证码图片的左上角、右下角坐标,裁剪图片(pillow),
# bro.save_screenshot('./aa.png')
#
# code_img_ele = bro.find_element_by_xpath('//*[@id="J-loginImg"]')
# location = code_img_ele.location # 验证码图片左上角的坐标 x,y
# size = code_img_ele.size # 验证码标签对应的长和宽
# print('location', location)
# print('size', size)
# # 左上角和右下角坐标
# rangle = (
#     int(location['x']), int(location['y']), int(location['x'] + size['width']), int(location['y'] + size['height'])
# )
# # 至此验证码图片区域就确定下来了
#
# i = Image.open('./aa.png')
# code_img_name = './code.png'
# # crop 根据指定区域进行图片裁剪
# frame = i.crop(rangle)
# frame.save(code_img_name)# 方法二 直接定位验证码图片标签位置截图
code_img_ele = bro.find_element_by_xpath('//*[@id="J-loginImg"]')
code_img_ele.screenshot('./code.png')# 将验证码图片提交给超级鹰进行识别
chaojiying = Chaojiying_Client('username', 'password', '96001')  #用户中心>>软件ID 生成一个替换 96001
im = open('code.png', 'rb').read()                                                 #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
print(chaojiying.PostPic(im, 9004)['pic_str'])# 下面进行页面点击
result = chaojiying.PostPic(im, 9004)['pic_str']
all_list = []  # 要存储即将被点击的点的坐标  [[x1,y1],[x2,y2]]if '|' in result:list_1 = result.split('|')count_1 = len(list_1)for i in range(count_1):xy_list = []x = int(list_1[i].split(',')[0])y = int(list_1[i].split(',')[1])xy_list.append(x)xy_list.append(y)all_list.append(xy_list)
else:x = int(result.split(',')[0])y = int(result.split(',')[1])xy_list = []xy_list.append(x)xy_list.append(y)all_list.append(xy_list)
print(all_list)# 遍历列表,使用动作链对每一个列表元素对应的x,y指定的位置进行点击操作
for l in all_list:x = l[0]y = l[1]# code_img_ele上面定位的验证码的位置ActionChains(bro).move_to_element_with_offset(code_img_ele, x, y).click().perform()sleep(0.5)bro.find_element_by_id('J-userName').send_keys('username')
sleep(0.5)
bro.find_element_by_id('J-password').send_keys('password')
sleep(0.6)
bro.find_element_by_id('J-login').click()
sleep(1)# 防止12306禁止selenium(使用selenium滑动会被12306检测到,需要伪装一下)
script = 'Object.defineProperty(navigator,"webdriver",{get:()=>undefined,});'
bro.execute_script(script)
# 滑动验证
div = bro.find_element_by_xpath('//*[@id="nc_1_n1z"]')
action = ActionChains(bro)
action.click_and_hold(div)
action.move_by_offset(350, 0).perform()
sleep(10)action.release()

12306 模拟登录相关推荐

  1. Python+Selenium实现12306模拟登录

    最近在学python爬虫,学习到了selenium的使用,看网上有很多使用selenium模拟登录12306网站的文章,于是自己也尝试了一下.期间遇到了一些问题,也参考了很多大佬的文章最终得到了解决, ...

  2. 12-基于selenium实现12306模拟登录,及京东登录滑动缺口验证模拟登录

    流程分析: 使用selenium打开登录页面 对当前selenium打开的这张页面进行截图 对当前图片的局部区域(验证码图片区域)进行截图 这样验证码图片和模拟登录进行所显示的图片一一对应(如果我们对 ...

  3. 爬虫|12306模拟登录

    简介: 可以访问蘑菇的BLOG来进行访问 这里是利用了selenium+图片识别验证,来实现12306的模拟登录,中间也参考了好几个项目,实现了这个小demo,中间也遇到了很多的坑,主要难点在于图片识 ...

  4. python 12306登录_实现12306模拟登录--Python

    1.首先要找出登录接口和图片生成.验证接口. 输入错误帐号密码.验证码,点击登录后会发生两个请求: 2.接下来研究如何验证验证码的 接着刚才操作,再次选择验证码某个图片点击登录,对比了一下刚才的验证链 ...

  5. 【爬虫剑谱】二卷4章 实战篇-模拟登录铁路12306网站(滑块验证)

    Python\网络爬虫\Selenium 一.源码 二.实战总结 问题一:不愿意代码模块化(常见于我这种菜狗+懒狗) 三.参考文献 一.源码 from selenium import webdrive ...

  6. 用python模拟登录12306

    此内容仅供学习使用...杜绝XXX!!! 1.首先第一步 1.1进入12306的登录页面,并且打开开发者工具 在Netmork中找到验证图片的信息 1.2然后点击Headers后没有发现验证图片的UR ...

  7. python爬虫登录12306失败_Python网络爬虫(selenium模拟登录12306网站)

    一.通过selenium自动登录12306官网 1.1 超级鹰打码平台API,创建chaojiyin.py文件 #!/usr/bin/env python#coding:utf-8 importreq ...

  8. Python + selenium自动化工具 + 滑块验证码+点选验证码,实现模拟登录“中国铁路网12306”

    文章目录 一.模拟登录"中国铁路网12306 1.引入库 2.初始化 3.将点选验证码图片,通过人工打码,返回目标像素位置(json格式). 4.点选验证码位置得到后,需要鼠标左击进行模拟人 ...

  9. selenium模拟登录12306

    利用selenium模拟登录12306,但是12306的登陆要想模拟还挺难的,需要先进行坐标识别,识别出来之后还要在进行滑块拖动验证识别,这里做一下记录. 这里的坐标识别是用的超级鹰,有时也会坐标识别 ...

  10. Selenium之模拟登录铁路12306

    最近接触了一些selenium模块的相关知识,觉得还挺有意思的,于是决定亲自尝试写一些爬虫程序来强化selenium模块(一定要多尝试.多动手.多总结).本文主要使用python爬虫来模拟登录铁路12 ...

最新文章

  1. 在 C# 中 (x == X) 何时成立?
  2. No MyBatis mapper was found in ‘[xx.mapper]‘ package. Please check your configuration
  3. sql_mysql注入基础篇
  4. JavaScript字符串操作方法大全,包含ES6方法 1
  5. ADS-B显示终端5.9
  6. HDFS常用命令与命令大全及其用法
  7. 期刊论文格式是什么样的,如何排版?
  8. 安川机器人SOCKET 通讯
  9. uib-datepicker-popup使用
  10. 外贸推荐:询盘回复的全面流程
  11. centos下安装firefox
  12. 【持续更新】 2022年 (2023届) 计算机 软件 保研经历 保研经验贴 (菜鸟 211 低rank 无科研成果 复旦/浙大/西安交大/中山/武大/华师大/东南/国科大杭高院)
  13. 情人节适合送礼的数码好物有哪些?心意满满的数码好物清单
  14. boost之日期 时间(date_time)
  15. Handler: Activity 之间通过 Handler 通信
  16. Learning ROS for Robotics Programming Second Edition学习笔记(七) indigo PCL xtion pro live
  17. Sunny.Xia的深度学习(四)MMOE多任务学习模型实战演练
  18. 技术人员的职业规划(方向)
  19. GoReplay 流量压测工具的使用
  20. 医学论文笔记:TMI2021 SMU-Net: Saliency-Guided Morphology-Aware U-Net for Breast Lesion Segmentation ...

热门文章

  1. 在windows 2003系统上安装诺基亚pc套件的方法
  2. nuke 11 for mac(视频后期合成软件)破解教程
  3. matlab创建wps服务器,wps设置云服务器地址(wps放到服务器)
  4. WPS Office 2019 发布Linux 个人版
  5. xmpp即时通讯协议的特性---长处和缺点!
  6. php 滑块验证,实现一个滑块验证功能
  7. 计算机专业英语第四版PPT,计算机专业英语4新.ppt
  8. ios微信小程序下拉刷新怎么配_浅谈微信小程序中的下拉刷新和上拉加载
  9. php manual 下载,PHP - Manual手册 - Download下载
  10. 苹果群控的安装和使用