前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python实战:定时对网站进行签到

Python实战:定时对网站进行签到

作者头像
快学Python
发布2022-11-28 14:02:54
1.4K0
发布2022-11-28 14:02:54
举报
文章被收录于专栏:快学Python快学Python快学Python

人生苦短,快学Python!

大家好,我是朱小五。之前我曾经写过一个Python改变生活系列的文章,介绍自己如何使用Python解决了各种各样的日常需求。在这其中有一篇文章《Python改变生活 | 利用Selenium实现网站自动签到》,就是以我亲身的经历来讲解如何实现某网站的定时签到。

不瞒大家说,这个方法非常实用,一年前的代码至今仍然可以正常使用。但我今年年初时候买了个服务器,就寻思将这些本地电脑的定时任务都迁移到服务器上。这个时候再去回看之前的代码,使用Selenium作为我们的自动签到解决方案就显得有些“笨重”了。

我今天呢,要给大家分享一下升级款——request方式。

具体做法

首先打开我们需要签到的网站,使用Chrome浏览器的F12快捷键(或通过鼠标右键菜单“检查”)打开浏览器的开发者工具,点击 Network 查看所有加载的请求。

如下方动图所示,这个时候我们手动点击签到,就会发现出现了一个新的post请求(checkin),不出所料这便是我们签到的请求。

▲点击签到抓取请求

而我们要做的事就是将该请求转换为Python代码,具体的方法也非常简单,详见之前的文章:每一个搞爬虫的人,都应该知道的神器!其中我们分享了两种可以一键将curl请求命令转Python请求代码的方法。

回到前文一开始发现的新请求,如下图所示,右键复制网络抓到的网络请求为cURL(bash)。

▲复制cURL(bash)

然后打开网站:https://curl.trillworks.com/

将刚刚复制的内容,填写该网站左侧,右侧同时生成了对应的 python requests 代码。

import requests

headers = {你自己的headers}
cookies = {你自己的cookies}

response = requests.post('https://*********.org/user/checkin', cookies=cookies, headers=headers)

剩下的事就很简单了,只需要每天定时执行该代码(模拟发起post签到请求)就可以实现该网站签到。

与之前的方法相比,最大的优势就是代码更精简、执行时间更短。selenium实现自动签到需要模拟浏览器进行加载、点击操作,即便用上显性等待等操作也只能控制到10秒左右.

这个签到代码除了增加定时功能,还可以增加通知功能(比如通过微信/飞书/钉钉来提醒自己签到成功+签到结果)。

这些技巧其实在我的新书《快学Python:自动化办公轻松实战》中都有详细介绍.

比如在9.3.4章节和9.4.4章节中分别用两个案例来演示定时机器人和飞书机器人(微信/企业微信/钉钉在其他章节)。

├──书籍《快学Python:自动化办公轻松实战》
│   ├── 9.3.4 案例 :Python 机器人定时发送消息
│   ├── 9.4.4 案例 :利用 Python 制作飞书机器人

书中的案例都是来源于真实需求,而我自己也确实是这么做的,定时任务可以这样写:

import schedule
import requests

headers = {你自己的headers}
cookies = {你自己的cookies}

def job():
    res = requests.post('https://*********.org/user/checkin', cookies=cookies, headers=headers)

schedule.every().day.at("09:50").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

比如今天给大家介绍的网站签到方法,已经在我的服务器正常运行半年多了,同时每天早上9.30我的飞书都能收到签到成功的提醒。

人生苦短,快学Python!已经购买了我的新书《快学Python:自动化办公轻松实战》的同学,可以查看章节快速入门Python,并掌握各种Python自动化办公小技巧。

如果大家对后续的升级(定时+通知)感兴趣,请给本文点个赞,我会继续给大家分享!

最后一句,人生苦短,快学Python!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 快学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 具体做法
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档