百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

这才是使用Python的正确姿势

bigegpt 2024-09-10 11:13 6 浏览

来源:【公众号】

Python技术

前段时间,被儿子鄙视了,为了找回作为父亲的尊严,我豁出去了,本以为是根硬骨头,结果,太出乎意外了……

因起

去年发现家附近,有个马场,约了下试骑,孩子挺喜欢

这家马场设施齐全,工作人员态度也不错,最重要的是,还可以在线预约,可以省去很多麻烦

经过再三考虑,加上架不住销售的鼓吹,报名了

打算开启孩子的精进之旅,对未来充满着希望

可怜天下父母心呀

障碍

前几次课,体验不错

上完之后,在公众号上一约,才发现事情并非之前想的那样顺利

首先是慢,其次周末太火爆约经常约不上,一打听,大部分家长都是在每一和周二提前把周末的约好了

其次,教练资源每天上午10点放出往后六天的,常常因为工作忘记

更麻烦的是,孩子非得约自己喜欢的教练,这个教练态度温和,水平高超,获奖无数,妥妥的香饽饽,更使约课雪上加霜

接连几个星期都没有约上课,孩子也没法持续训练,对我也有了抱怨之情

我这个做爸爸的,还真无处辩驳……

改变

真的就没有办法了吗?

当然不是,只是有没有将自己逼到必须解决的份上,所谓

置之死地而后生

持续几次之后,有点不耐烦了,突然想到

咱不是会 Python 吗,写个爬虫,自动预约呗

于是利用工作之余琢磨如何实现自动预约

公众号应用

对于公众号应用,实际上是一个普通的 H5 网页,为了安全,会限制只能用微信浏览器访问,以及方便直接用微信登录

实现方式是通过公众号提供的链接转化接口,将普通链接转化为需要微信验证的链接

通过转化后的链接,必须在微信应用的自带浏览器中访问,请求后会获取一些用户的身份信息,比如 Openid,昵称,性别等

这时需要用户来确认是否同意该公众号获取自己的这些信息

当用户同意后,就会跳转到实际的页面里,这时会附带上一些用户的特征信息

这时,访问的就是公众号应用的原始 URL 了

提取链接

微信内置浏览器有个复制链接的功能,可以获取当前页面的 URL

然后在电脑的浏览器中打开,一般就能看到和在微信里访问相同的页面

通过这样的方式,我发现这个公众号的 URL 中有 Openid 信息,应该是做用户识别用的

如果能在电脑浏览器中打开,下面的事情就简单了

编写爬虫

通过浏览器的请求分析功能查看关键操作的请求 (一般按 F12 就可以进入调试模式)

将请求复制为 curl 格式

curl 请求转 Python 代码

这样的好处是,复制全请求的全部内容

这时你可能会觉得,应该编写 Python 代码了

确实是可以了,不过将复制的请求内容编写成 Python 语句可不是件容易的事情,如果你这么干过的话,光做引号配对就非常耗时了

好在,我们可以利用在线转化工具,粘贴复制就可搞定。

将复制的 curl 格式请求,粘贴在左边,然后选择要转换为的语言,比如 Python

右边瞬间就有了结果

curl 请求转 Python 代码

将结果复制出来,会发现大部分编码工作已经完成了

剩下的就是一些小调整了,比如将参数动态化,设置一些逻辑等等

部署

最后将代码做成定时服务,如果有云服务器,写个 crontab 就好了

也可以做成一个定义任务,可以参考这一篇文章 公交闹钟 —— 再也不用白等车了 其中有详细定时任务的制作教程

经过一番折腾,终于为孩子约上了喜欢的教练的课,而且不用每次守着手机无奈的等待,也重新找回了做为父亲的尊严……

总结

很多朋友经常会问,如何学习一门编程语言,又如何利用

其实就是在学中用,用中学,不断地利用学到的技能,解决实际中的问题,甚至创造出一些机会来实践,这便是学习和利用的捷径。

相关推荐

LangChain4j如何自定义文档转换器实现数据清洗?

LangChain4j提供了3种RAG(Retrieval-AugmentedGeneration,检索增强生成)实现,我们通常在原生或高级的RAG实现中,要对数据进行清洗,也就是将外接...

Java 8 Stream API 详解(java stream.)

Java8StreamAPI详解一、概述在Java8中,StreamAPI是一个重要的新特性。它为处理集合(如List、Set等)中的元素提供了一种高效且富有表现力的方式。Str...

Java修炼终极指南:185 使用 Stream 过滤嵌套集合

这是面试中的一个经典问题,通常从一个模型开始,如下所示(我们假设集合是一个List):publicclassAuthor{privatefinalStringname;pri...

java8的stream使用小示例(java stream())

据JetBrains发布的2021年开发者生态系统调查,Java8在java使用的版本中仍然是当前最流行的版本。72%的专业开发人员使用Java8作为其在java开发中主要编程语言版本。现...

Node.js Stream - 实战篇(node.js in action)

本文转自“美团点评技术团队”http://tech.meituan.com/stream-in-action.html背景前面两篇(基础篇和进阶篇)主要介绍流的基本用法和原理,本篇从应用的角度,介...

Java Stream:集合处理的api(java 集合操作)

JavaStream流:高效集合处理的函数式编程利器一、什么是JavaStream?Java8引入的StreamAPI是一套用于处理集合数据的流式编程接口,通过函数式风格(无副作用的...

去除 List 中的重复元素,你知道几种实现方法?

去除List中重复元素,这在实际编程或面试中经常遇到,每个人都有习惯的写法吧,这里抛砖引玉,汇总了一些实现方案,开拓思路。准备数据假设数组中有10个数据,可能有重复,需要将重复的数据从数组中去掉。pu...

Java开发者必看!Stream流式编程10个爆款技巧,让你代码优雅飞起

为什么你的Java代码总像拧巴的麻绳?掌握这10个Stream实战技巧,代码效率与优雅度将产生质的飞跃。以下案例均来自真实电商系统场景,带你感受流式编程的降维打击!一、过滤与映射组合拳(Filter...

leetcode每日一题之存在重复元素(存在重复元素 iii)

题:给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回true。如果数组中每个元素都不相同,则返回false。比如:输入:[1,2,3,1]输出:true...

告别for循环!揭秘Stream API如何让你的代码简洁度提升300%

一、当传统循环遇上现代需求真实场景复现:某电商平台需要处理10万条订单数据,要求:筛选出金额>500的订单提取用户ID并去重统计VIP用户数量传统实现方案://常规写法Set<Long...

Java中List去重的N种方法:从基础到优雅

Java中List去重的N种方法:从基础到优雅在日常的Java开发中,我们经常会遇到需要对List集合去重的情况。无论是为了清理重复的数据,还是为了优化算法性能,掌握多种去重方式都是一项非常实用的技能...

Java Stream流没用过?常用高频方法

概念Stream流是Java8添加的以一种链式调用的方法处理数据,主要侧重于计算。具有以下相关特点代码简洁链式调用Stream常用方法1.将数组变为当作List操作String[]strArr=...

核医学专业名词索引(M-R)(核医学重点归纳)

M吗啡(morphia)埋藏式心律转复除颤器(implantablecardioverterdefibrillator,ICD)麦角骨化醇(VD2,calciferol)脉冲堆积(pulsepi...

CodeMeter 新版发布(codesigner下载)

威步于2022年8月4日发布CodeMeter7.50及CodeMeter软件保护套装11.10,以下为新版内容。CodeMeterRuntime7.50StreamingSIMDExten...

世界上最小的五轴铣床Pocket NC(最小的五轴加工中心)

PocketNC,由MIT学生研制,还有说法是这款产品的设计者是来自美国蒙大拿州的一对极客夫妻。目前主要有两款产品:PocketNCV2-50,9000美元;PocketNCV2-10,60...