吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5830|回复: 15
收起左侧

[Python 转载] 使用Python来进行自动化登录12306

  [复制链接]
QingYi. 发表于 2021-6-8 22:19
首先我们是需要打码平台的 我会发在代码里面 自己去注册,是免费使用的,自己看清楚index先


需要用到Selenium  Chrome  然后还需要自己安装一下selenium(pip install) 自己配置一下环境变量和驱动


直接上代码


main


[Python] 纯文本查看 复制代码
#encoding=gbk
import time
from chaojiying import Chaojiying_Client
from selenium.webdriver import Chrome
from selenium.webdriver.common.action_chains import ActionChains
# 初始化超级鹰

chaojiying = Chaojiying_Client('username', 'password', '918082')

# 如果你的程序被识别到了怎么办?
# 1.chrome的版本号如果小于88  在你启动浏览器的时候(此时没有加载任何网页内容), 向页面嵌入js代码. 去掉webdriver
web = Chrome()

# 在最后一步滑动拽动的时候会进行检测
# window.navigator.webdriver always is True
# 正常打开就是false 所以我们需要特殊处理一下

web.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
  "source": """
   window.navigator.webdriver = undefined
    Object.defineProperty(navigator, 'webdriver', {
      get: () => undefined
    })
  """
})
web.get("https://kyfw.12306.cn/otn/resources/login.html")

time.sleep(3)
# 切换到账号密码登录
web.find_element_by_xpath('/html/body/div[2]/div[2]/ul/li[2]/a').click()
time.sleep(3)

# 先处理验证码
# 找到图片的区域
ver_img = web.find_element_by_xpath('//*[@id="J-loginImg"]')
# 保存一下
dic = chaojiying.PostPic(ver_img.screenshot_as_png, 9004)
# 从返回的值里面找到需要点击的下标
res = dic['pic_str']
# 分割 这里大家可以自己输出一下 就知道了
res = res.split("|")
for r in res:
    # 分割 同上
    temp = r.split(",")
    # 拿到x y 坐标 因为他是字符串 先转数字
    x = int(temp[0])
    y = int(temp[1])
    # 移动到某个区域 然后再进行点击
    # 然后找到区域 进行偏移
    # 是事件链
    ActionChains(web).move_to_element_with_offset(ver_img, x, y).click().perform()

time.sleep(2)
# 账号密码 点击登录
web.find_element_by_xpath('//*[@id="J-userName"]').send_keys("12306_username")
web.find_element_by_xpath('//*[@id="J-password"]').send_keys('12306_password')
web.find_element_by_xpath('//*[@id="J-login"]').click()
time.sleep(1)
# 拖拽
move = web.find_element_by_xpath('//*[@id="nc_1_n1z"]')
ActionChains(web).drag_and_drop_by_offset(move, 300, 0).perform()



打码平台
[Python] 纯文本查看 复制代码
#!/usr/bin/env python
# coding:utf-8

import requests
from hashlib import md5

class Chaojiying_Client(object):

    def __init__(self, username, password, soft_id):
        self.username = username
        password =  password.encode('utf8')
        self.password = md5(password).hexdigest()
        self.soft_id = soft_id
        self.base_params = {
            'user': self.username,
            'pass2': self.password,
            'softid': self.soft_id,
        }
        self.headers = {
            'Connection': 'Keep-Alive',
            'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
        }

    def PostPic(self, im, codetype):
        """
        im: 图片字节
        codetype: 题目类型 参考 [url]http://www.chaojiying.com/price.html[/url]
        """
        params = {
            'codetype': codetype,
        }
        params.update(self.base_params)
        files = {'userfile': ('ccc.jpg', im)}
        r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers)
        return r.json()

    def ReportError(self, im_id):
        """
        im_id:报错题目的图片ID
        """
        params = {
            'id': im_id,
        }
        params.update(self.base_params)
        r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)
        return r.json()


if __name__ == '__main__':
    # 用户中心>>软件ID 生成一个替换 96001
    chaojiying = Chaojiying_Client('username', 'password', '918082')
    # 本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
    # im 图片的字节
    im = open('b.png', 'rb').read()
    # 1902 验证码类型  官方网站>>价格体系
    print(chaojiying.PostPic(im, 1902))




在新标签打开所有链接复制所有链接URL复制所有链接URL(反向)复制所有链接标题 + URL复制所有链接标题 + URL (MD)复制所有链接标题 + URL (BBS)复制所有链接标题 + URL (筛选)复制所有链接标题 + URL (设置复制格式)在新标签页打开所有图片链接在一个标签页显示所有图片链接
复选框 - 选中
复选框 - 取消
复选框 - 反选
单选框 - 选中
单选框 - 取消
特殊单选框 - 选中

免费评分

参与人数 4吾爱币 +4 热心值 +4 收起 理由
blindcat + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
jlzoe + 1 + 1 谢谢@Thanks!
砺心缘起 + 1 + 1 我很赞同!
wdda + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| QingYi. 发表于 2021-6-8 22:26
无闻无问 发表于 2021-6-8 22:25
能用上超级鹰🦅的,都是大佬,我等就只有老老实实输验证码了…

哪有 只不过拾人牙慧罢了 做超级鹰的才是大佬
无闻无问 发表于 2021-6-8 22:25
能用上超级鹰🦅的,都是大佬,我等就只有老老实实输验证码了…
叶凯 发表于 2021-6-9 00:42
bennyt 发表于 2021-6-9 01:17
非常有用的功能支持下。
zhengxinjun 发表于 2021-6-9 08:18
感谢分享 学习了
she383536296 发表于 2021-6-9 08:22
这个可以有,
ciker_li 发表于 2021-6-9 08:23
感谢分享
xiaolai1995 发表于 2021-6-9 08:47
感谢分享 学习了
cooleephone 发表于 2021-6-9 08:51
都是大佬,我等就只有老老实实输验证码了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 23:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表