selenium+超级鹰实现模拟登录12306

下面是详细的“selenium+超级鹰实现模拟登录12306”的攻略。

简介

在这个攻略中,我们将讲解如何使用selenium和超级鹰实现模拟登录12306。详情如下:

  • 首先,我们将介绍selenium和超级鹰的简介和安装方法。
  • 其次,我们将介绍如何使用selenium进行浏览器模拟操作。
  • 然后,我们将介绍如何结合超级鹰破解验证码。
  • 最后,我们将给出完整的代码和示例。

Selenium 和超级鹰的简介和安装方法

Selenium

Selenium是一个自动化测试工具,它可以模拟真实的浏览器行为,并且可以执行与浏览器交互的测试和其他任务。Selenium支持多种语言,如Java、Python等。在这个攻略中,我们使用Python的Selenium 库。

安装Selenium库:

pip install selenium

超级鹰

超级鹰是一个免费的验证码破解服务平台。它可以帮助我们快速地破解各种类型的验证码,包括字母数字验证码、滑动验证码和混合验证码等。

安装超级鹰库:

pip install chaojiying

注:使用超级鹰需要在官网上注册并申请Key和用户名。

使用Selenium进行浏览器模拟操作

在进行模拟登录12306前,我们需要先了解如何使用Selenium进行浏览器模拟操作。在这里,我们以Chrome浏览器为例进行说明。Selenium 为我们提供了操作 Chrome 的工具。

首先,打开Chrome浏览器,并输入如下命令控制chrome浏览器打开网站:

from selenium import webdriver

driver = webdriver.Chrome()  #打开chrome浏览器
driver.get('https://www.baidu.com')   #访问百度首页

运行这段代码,我们可以看到Chrome浏览器自动打开,并且访问了百度首页。

如果我们想查找页面上的某些元素,例如在百度首页上查找输入框并进行搜索操作,则代码如下:

from selenium.webdriver.common.by import By

driver.find_element(By.ID, 'kw').send_keys('12306')   #输入搜索关键字
driver.find_element(By.ID, 'su').click()    #点击搜索按钮

上面的代码中,我们使用了By模块查找页面元素,其中By.ID表示通过元素id进行查找,kwsu分别是百度搜索框和搜索按钮的id。

在模拟登录12306时,我们需要通过如上方法找到登录页面的输入框并输入用户名和密码,然后点击登录按钮。

结合超级鹰破解验证码

在模拟登录12306时,我们需要输入验证码。在这里,我们使用超级鹰服务来破解验证码。

超级鹰的使用具体如下:

import chaojiying

chaojiying = chaojiying.Chaojiying_Client('username', 'password', 'software_ID')   #初始化超级鹰账号信息

im = open('captcha.gif', 'rb').read()   #读取验证码图片

result = chaojiying.PostPic(im, 1902)   #提交验证码到超级鹰服务器进行识别

print(result['pic_str'])   #获取识别结果

上面的代码中,我们通过Chaojiying_Client函数初始化超级鹰的账号信息,其中usernamepassword是超级鹰账号的用户名和密码,software_ID是软件ID。我们读取图片并使用PostPic函数将图片发送到超级鹰服务器进行识别,最终获取识别结果。

实际上,在12306模拟登录时,12306的验证码是通过浏览器生成的,我们可以通过selenium获取页面验证码的图片,并通过上述代码将图片识别结果返回。

完整代码和示例

下面是完整的代码和示例,其中代码包含了Selenium的模拟登录和超级鹰的验证码破解过程。

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
import chaojiying

# 初始化超级鹰账号信息
CJ_USERNAME = 'your_account'
CJ_PASSWORD = 'your_password'
CJ_SOFT_ID = 'your_soft_id'
chaojiying = chaojiying.Chaojiying_Client(CJ_USERNAME, CJ_PASSWORD, CJ_SOFT_ID)

# 打开Chrome浏览器
browser = webdriver.Chrome()

# 进入12306登录页面
browser.get("https://kyfw.12306.cn/otn/login/init")

# 等待页面元素加载完成
time.sleep(2)

# 输入用户名和密码
browser.find_element(By.ID, 'username').send_keys('your_username')
browser.find_element(By.ID, 'password').send_keys('your_password')

# 获取验证码图片,并保存为本地文件
captchaImage = browser.find_element(By.ID, 'J-loginImg')
captchaImage.screenshot('captcha.png')

# 通过超级鹰识别验证码,并输入验证码
im = open('captcha.png', 'rb').read()
result = chaojiying.PostPic(im, 1902)
print(result['pic_str'])
captchaInput = browser.find_element(By.ID, "J-loginImgPsg")
captchaInput.send_keys(result['pic_str'])

# 点击登录按钮
browser.find_element(By.ID, 'loginSub').click()

# 等待页面跳转
time.sleep(5)

# 获取登录状态
status = browser.execute_script('return JSON.parse(document.getElementById("result_message").innerText)["status"]')

# 获取登录状态信息
msg = browser.execute_script('return JSON.parse(document.getElementById("result_message").innerText)["msg"]')

# 输出登录结果
print(msg)
print(status)

# 关闭浏览器
browser.quit()

在代码中,我们首先打开 Chrome 浏览器,然后进入 12306 登录页面。接着,我们使用 find_element(By.ID, 'username')find_element(By.ID, 'password') 等函数找到了登录时的用户名、密码和验证码输入框,并执行了相关操作,其中验证码图片是通过screenshot()截图保存的本地文件。

获取验证码图片之后,我们使用超级鹰服务对验证码进行识别,并将识别结果输入到页面上,然后执行click()函数模拟触发登录按钮并等待页面跳转。

最后,我们通过 JavaScript 代码获取登录状态,判断是否成功。如果登录成功,则获取登录信息并打印,最后关闭浏览器窗口。

综上所述,我们通过以上方法可以轻松使用Selenium超级鹰实现模拟登录12306的功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:selenium+超级鹰实现模拟登录12306 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • 使用Python横向合并excel文件的实例

    当我们需要整合多个excel文件时,可能需要将它们合并成一个文件。本篇教程将介绍如何使用Python横向合并多个excel文件的实例。 步骤 1:安装所需的模块 在开始之前,需要确保安装了pandas、openpyxl和xlrd模块。可以使用以下命令进行安装: pip install pandas openpyxl xlrd 步骤 2:读入多个Excel文件…

    python 2023年5月14日
    00
  • Python利用神经网络解决非线性回归问题实例详解

    Python利用神经网络解决非线性回归问题实例详解 1. 神经网络和非线性回归问题 在学习非线性回归问题是,我们往往会用到神经网络。神经网络是一种基于模拟真实神经元结构的,具有自学习能力的数学模型。 在解决非线性回归问题时,传统的线性回归只能拟合线性的数据, 而神经网络可以拟合任意复杂度的数据模型,因此在实际应用中更加广泛。 2. 实例说明1:使用神经网络拟…

    python 2023年5月19日
    00
  • Python pyautogui模块实现鼠标键盘自动化方法详解

    首先我们需要了解一些基本概念: pyautogui是Python中的一个第三方模块,可以用于模拟鼠标和键盘操作,实现自动化。 安装pyautogui需要使用pip命令,即在命令行输入pip install pyautogui。 使用pyautogui模块前,需要先import pyautogui。 实现鼠标键盘自动化的过程可以分为以下几个步骤: 通过pyau…

    python 2023年5月19日
    00
  • Python中多线程及程序锁浅析

    Python中多线程及程序锁浅析 在Python中,我们通常使用threading模块来实现多线程编程。 多线程基础 创建线程 使用threading.Thread()函数可以创建一个线程,语法如下: my_thread = threading.Thread(target=my_function, args=my_args) 其中,target参数是指定需要…

    python 2023年6月6日
    00
  • Python-基础-入门 简介

    以下是“Python-基础-入门 简介”的完整攻略。 Python-基础-入门 简介 什么是Python? Python 是一种跨平台的计算机程序设计语言,拥有简单易学、开发效率高等优点,近年来在数据分析、人工智能、Web开发等领域得到了广泛应用。 如何安装Python? 首先,你需要从 Python 官网 下载并安装适合自己操作系统的 Python 版本。…

    python 2023年5月20日
    00
  • python监控键盘输入实例代码

    下面我将为您详细讲解监控键盘输入的Python实例代码: 实现Python监控键盘输入的模块有很多,本攻略会介绍两种常用的方法: 1. 使用pynput库进行键盘输入监听 首先,在命令行中使用pip命令安装pynput库: pip install pynput 在Python代码中引入pynput库 from pynput import keyboard 可…

    python 2023年6月3日
    00
  • python 实现图片修复(可用于去水印)

    当我们想要去除一张图片上的水印时,常见的做法是使用 Adobe Photoshop 等专业软件进行处理,然而这些软件通常价格昂贵,且需要具备一定的技能水平。而现在,我们可以使用 Python 来实现图像修复,从而达到去除水印的效果。 原理 该方法使用了图像处理中的一个常见手段,即基于图像中像素值的插值算法。简单来说,我们可以通过分析图片的像素,间隙来估算丢失…

    python 2023年5月18日
    00
  • Python画图高斯分布的示例

    以下是详细讲解Python画图高斯分布的示例的完整攻略: 1. 准备工作 首先,我们需要导入相关的Python库和模块,包括numpy和matplotlib等。在命令行中输入以下命令: import numpy as np import matplotlib.pyplot as plt 这样就可以在程序中使用numpy和matplotlib库中的函数和方法了…

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部