Python实现上下班抢个顺风单脚本

yizhihongxing

我将给出一份简单的攻略,希望能帮到你:

1. 脚本工作原理

该脚本的实现主要依赖于以下四点:

  • 使用selenium模拟浏览器操作,自动登录企业微信;
  • 通过pytesseract库识别图片验证码;
  • 存储下班时间,并每隔5秒刷新页面查询是否已有顺风单;
  • 若有顺风单,自动抢顺风单并提交。

2. 安装环境

要使用该脚本,首先需要安装Python和一些必要的库。安装方法如下:

  1. 安装Python:前往Python官网下载对应系统版本的安装包进行安装,并配置好环境变量。
  2. 安装selenium:pip install selenium
  3. 安装pytesseract:pip install pytesseract
  4. 安装Pillow:pip install Pillow
  5. 安装tesseract-OCR:前往tesseract官网下载并安装。

3. 编写代码

下面是示例代码,具体细节可根据实际情况进行调整:

from selenium import webdriver
import pytesseract
import time
from PIL import Image

def get_image_code(driver, element):
    driver.save_screenshot('screenshot.png')
    left = element.location['x']
    top = element.location['y']
    right = left + element.size['width']
    bottom = top + element.size['height']
    im = Image.open('screenshot.png')
    captcha = im.crop((left, top, right, bottom))
    captcha.save('captcha.png')
    return captcha

def check_login():
    login_time = '18:01'  
    while True:
        now_time = time.strftime('%H:%M', time.localtime(time.time()))
        if now_time >= login_time:
            break
        time.sleep(5)

    driver = webdriver.Chrome()
    driver.get('http://xxx.com')  #进入企业微信登录页
    time.sleep(2)

    #输入用户名、密码并登录
    driver.find_element_by_id('username').send_keys('xxx')
    driver.find_element_by_id('password').send_keys('xxx')
    driver.find_element_by_class_name('login_btn').click()
    time.sleep(2)

    #处理验证码
    captcha_element = driver.find_element_by_class_name('captcha')
    captcha_img = get_image_code(driver, captcha_element)
    captcha_code = pytesseract.image_to_string(captcha_img)
    driver.find_element_by_id('captcha').send_keys(captcha_code)

    if '登录失败' in driver.page_source:
        driver.quit()
        return False

    time.sleep(1)
    driver.find_element_by_id('login_button').click()
    time.sleep(2)

    #登录成功后进入抢顺风单页面
    driver.get('http://xxx.com/offer/rob')
    time.sleep(2)
    return driver

def check_rob(driver):
    rob_status = 0
    while True:
        driver.refresh()
        time.sleep(5)
        try:
            rob_btn = driver.find_element_by_xpath('//button[@class="btn btn-success btn-lg robButton"]')
        except:
            print('抢车单失败')
            continue
        if rob_btn and rob_btn.text != '已抢光' and rob_status == 0:
            rob_btn.click()
            rob_status = 1
            time.sleep(1)
            try:
                driver.find_element_by_class_name('confirm').click()
            except:
                pass
            print('抢车单成功')

4. 其他注意事项

  • 需要添加异常处理机制,防止程序崩溃;
  • 在处理验证码时,可能需要调整图片大小及解析能力,才能正确识别;
  • 最好在机器上提前运行脚本进行测试,确保登录及抢车单流程正常。

希望以上的攻略能够帮到你!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现上下班抢个顺风单脚本 - Python技术站

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

相关文章

  • 适合模拟python

    【问题标题】:Fit a simulation python适合模拟python 【发布时间】:2023-04-01 09:47:01 【问题描述】: 鉴于模型蛮力的参数数量是不可能的,我正在尝试将模拟拟合到经验数据。有哪些可用于模拟的资源?模拟是一个 python 函数(不要与数学函数混淆),它输出一个列表。我希望这个列表尽可能接近其他列表(经验数据)。 …

    Python开发 2023年4月8日
    00
  • Python离线安装包教程分享

    Python离线安装包教程分享 Python是一种非常流行的编程语言,常常被用于Web开发、人工智能、数据分析等领域。在安装Python时,我们通常会使用在线安装的方式。但是,在某些情况下,我们可能无法进行在线安装,比如网络不稳定或者无法连接到互联网。这时候,我们可以使用Python的离线安装包进行安装。本文将为大家介绍如何使用Python的离线安装包进行安…

    python 2023年5月14日
    00
  • 理解python中生成器用法

    下面是关于理解 Python 中生成器用法的完整攻略: 什么是生成器? 生成器是 Python 中的一种特殊类型函数,它可以按需生成一个或多个值。在函数内部,yield 关键字用于返回一个值,并暂停函数的执行,在下次调用函数时,可以继续从 yield 的位置继续执行。 与普通函数返回一个值不同,生成器函数可以返回生成器对象,每次调用生成器对象的 __next…

    python 2023年6月3日
    00
  • Python内置数据结构列表与元组示例详解

    以下是“Python内置数据结构列表与元组示例详解”的完整攻略。 1. 列表(List) 列表是Python中最常用的数据结构之一,它是一个有序的集合,可以存储任意类型的数据,包括数字、字符串、列表、元组等。列表使用方括号[]来表示,其中的元素用逗号分隔。 1.1 创建列表 可以使用以下方式来创建一个列表: # 创建一个空列表 my_list = [] # …

    python 2023年5月13日
    00
  • Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例

    Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例 本文将介绍如何使用Python获取基金网站的网页内容,并使用BeautifulSoup库分析html操作。我们将提供两个示例,演示如何获取基金净值和基金持仓。 获取网页内容 以下是一个示例代码,演示如何使用Python获取基金网站的网页内容: import request…

    python 2023年5月15日
    00
  • python plt可视化——打印特殊符号和制作图例代码

    下面就为你详细讲解“python plt可视化——打印特殊符号和制作图例代码”的完整攻略。 打印特殊符号 当我们需要在matplotlib绘图的时候,可能需要打印一些特殊符号,如希腊字母(alpha、beta、gamma等)或其他特殊符号(如度数符号°)。这时我们可以使用tex表达式在图中打印特殊符号。 下面是一些常用特殊符号的代码: 特殊符号 代码 求和符…

    python 2023年6月3日
    00
  • python中requests和https使用简单示例

    以下是关于Python中requests和https使用的简单示例: Python中requests和https使用简单示例 在Python中,requests是一个常用的HTTP库,可以用于发送HTTP请求和处理HTTP响应。同时,requests也支持HTTPS协议,可以轻松处理HTTPS请求。以下是Python中requests和https使用的简单示…

    python 2023年5月14日
    00
  • Python中常用的8种字符串操作方法

    下面我来详细讲解Python中常用的8种字符串操作方法。 一、字符串的基本操作 1.1 字符串的创建 使用单引号或双引号创建字符串,例如: a = ‘hello’ b = "world" 1.2 字符串的拼接 可以使用加号( + )来实现字符串的拼接,例如: c = a + b print(c) # 输出: helloworld 1.3 …

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