irpas技术客

用Python爬虫的request方式实现自动签到_朱小五是凹凸君呀_python requests 签到

未知 6432

人生苦短,快学Python!

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

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

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

具体做法

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SOcXAG4A-1663654439359)(https://typora-1300769465.cos.ap-beijing.myqcloud.com/typora_zhuxiao5/自动命名20220707022054.gif)]

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

回到前文一开始发现的新请求,如下图所示,右键复制网络抓到的网络请求为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 制作飞书机器人

书中的案例都是来源于真实需求,而我自己也确实是这么做的。

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

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

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


最近我花了两年写的新书已经上市,也算是我在CSDN博客分享Python知识3年的一个总结!

《快学Python:自动化办公轻松实战》点击蓝字查看书籍详情,感谢支持!


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Python #requests #签到