用python实现自动签到脚本

1. 闲来无事,于是乎写个脚本研究一下自动打卡。

2. 签到原理:

模拟用户进行自行输入,然后登录,然后签到,在研究过程中使用到了python的selenium包,本人在win10环境中进行测试使用,可以实现基本的自动打卡。

3. 需要的环境selenium

pip install selenium

4. 安装模拟的插件

需要从网上下载模拟点击浏览器的google浏览器插件chromedriver.exe,下载链接:https://npm.taobao.org/mirrors/chromedriver/,需要找到与自己浏览器适配的插件。(如何查看自己Chrome适配的插件版本?如图:)
在这里插入图片描述

5. 下载好后将插件放到Chrome.exe所在的文件夹下,如图:

在这里插入图片描述

6. 开始工作结束,接下来进入代码正题:

import time
import datetime
import random
from selenium import webdriver


def morning_clockin():
	# 找到插件的路径,使用它驱动操作
    browser = webdriver.Chrome('C:\Program Files\Google\Chrome\Application\chromedriver.exe')
	
	# 选择需要打卡的网址,填入你的签到网页
    browser.get('https://www.baudu.login')
	
	# 找到邮件和密码输入框的xpath,并在对应的位置送入账号密码
    browser.find_element_by_xpath('//*[@id="email"]').send_keys("724183***@qq.com")
    browser.find_element_by_xpath('//*[@id="passwd"]').send_keys("zhan******")
	
	# 找到登录按钮的xpath,模拟点击
    browser.find_element_by_xpath('//*[@id="login"]').click()
    time.sleep(2)
    # 找到签到按钮的xpath,模拟签到
    browser.find_element_by_xpath('/html/body/div[3]/div[7]/div/button').click()


if __name__ == '__main__':
	# 获取当天的星期,周六日不打卡
    today = datetime.datetime.now().weekday() + 1
    if (today % 7 == 0) or (today % 7 == 6):
        print("今天是本周的第 {} 天,无需打卡!".format(datetime.datetime.now().weekday() + 1))
   	# 工作日打卡
    else:
        # 早上打卡---设置0-300秒之间随机数打卡
        print(datetime.datetime.now())
        random_time = random.randint(0, 60)
        time.sleep(random_time)
        # 进行打卡
        morning_clockin()
        print(datetime.datetime.now())

7. 完工!

如果有验证码,可以使用带验证码的百度插件api进行调用,我是纯内部系统无验证码,没研究验证码部分。最后剩下的就是写定时任务了,参考网上博客即可!

附带一篇写的很详细的Selenium WebDriver教程!传送门

8. 更新,创建定时任务运行脚本

传送门:https://blog.csdn.net/l8947943/article/details/119898781

  • 25
    点赞
  • 122
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
### 回答1: 下面是一个示例的京东自动签到Python 脚本: ```python import requests import json # 首先你需要有京东账号并且登录 # 然后在浏览器中打开京东签到页面, 复制一下请求地址 url = "https://api.m.jd.com/client.action?functionId=userSign" # 之后把请求头和请求体中的内容复制下来 headers = { "User-Agent": "jdapp;iPhone;9.0.5;13.5.1;5b5aa5db5d2d5b5aa5db5d2d5b5aa5db5d2d5b5aa5db5d2d;network/4g;ADID/3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D;supportApplePay/3;hasUPPay/0;pushNoticeIsOpen/1;model/iPhone9,1;addressid/135701015;hasOCPay/0;appBuild/167169;supportBestPay/0;jdSupportDarkMode/0;pv/46.7;apprpd/MyJD_Main;ref/MyJdMTAManager;psq/2;ads/;psn/5b5aa5db5d2d5b5aa5db5d2d5b5aa5db5d2d5b5aa5db5d2d|985@985@2149@2149", "Referer": "https://jdjoy.jd.com/pet/index", "Content-Type": "application/x-www-form-urlencoded", } data = { "body": "{}", "client": "wh5", "clientVersion": "1.0.0", "sid": "", # 这里填写你的 sid "uuid": "", # 这里填写你的 uuid } # 最后发起请求即可实现自动签到 response = requests.post(url, headers=headers, data=data) # 打印签到的结果 print(json.loads(response.text)) ``` 注意: 你需要把 `sid` 和 `uuid` 的值替换成你自己的值. 你可以在浏览器的开发者工具中查看 ### 回答2: 要实现一个京东自动签到Python脚本,首先需要安装必要的Python库,如requests、selenium和webdriver等。 1. 导入所需的库: ```python import requests from selenium import webdriver from selenium.webdriver.chrome.options import Options ``` 2. 设置Chrome浏览器参数: ```python chrome_options = Options() chrome_options.add_argument('--headless') # 设置无头模式,无需显示浏览器界面 driver = webdriver.Chrome(chrome_options=chrome_options) ``` 3. 登录京东账号: ```python def login(username, password): driver.get('https://passport.jd.com/new/login.aspx') driver.find_element_by_link_text('账户登录').click() driver.find_element_by_id('loginname').send_keys(username) driver.find_element_by_id('nloginpwd').send_keys(password) driver.find_element_by_id('loginsubmit').click() ``` 4. 自动签到: ```python def jd_sign_in(): driver.get('https://vip.jd.com/sign/index') driver.find_element_by_link_text('签到领京豆').click() if '签到成功' in driver.page_source: print('签到成功!') else: print('签到失败!') ``` 5. 主函数入口: ```python if __name__ == '__main__': username = 'your_username' # 替换为京东账号用户名 password = 'your_password' # 替换为京东账号密码 login(username, password) jd_sign_in() driver.quit() ``` 以上就是一个简单的实现京东自动签到Python脚本。该脚本通过模拟浏览器行为自动登录京东账号并完成签到操作。需要注意的是,由于京东网页结构可能会变化,所以在使用时需要根据实际情况进行修改。另外,也可以结合定时任务等方式,实现每日自动签到。 ### 回答3: 要实现一个京东自动签到Python脚本,需要以下步骤: 1. 导入所需的库:使用import语句导入所需的库,例如selenium和webdriver库。 2. 设置浏览器驱动:根据浏览器的不同,下载相应的浏览器驱动并设置到系统环境变量中。 3. 实例化浏览器:使用webdriver库的webdriver.Chrome()方法实例化一个Chrome浏览器对象。 4. 访问京东签到页面:使用浏览器对象的get()方法访问京东签到页面。 5. 登录京东账号:通过定位各个元素输入账号和密码,点击登录按钮完成登录过程。 6. 执行签到操作:使用浏览器对象的find_element_by_xpath()或find_element_by_css_selector()方法定位签到按钮,并点击。 7. 判断是否签到成功:根据签到成功后页面元素的变化,使用浏览器对象的find_element_by_xpath()或find_element_by_css_selector()方法判断签到操作是否成功。 8. 保存签到结果:将签到结果保存到文件中,可以使用open()函数创建文件并将签到结果写入。 9. 关闭浏览器:使用浏览器对象的quit()方法关闭浏览器。 10. 设置定时任务:可以使用Python的定时任务库,如schedule库,创建定时任务,定时执行签到脚本。 总结: 以上是一个简单的京东自动签到Python脚本实现步骤,通过使用selenium库模拟浏览器操作,我们可以实现自动登录和签到功能。定时任务可以确保脚本每天自动执行签到操作。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

l8947943

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值