耗时一个半月的时间, 学完了B站路飞学城的一个爬虫入门视频, 算是颇有收获吧,简单记录一下自己的收获.

不要拿自己的爱好挑战别人的职业

一开始想学个爬虫, 想的是随便学个入门, 然后简单学个进阶视频,就打算以后过年回家抢票可以自己手写了.直到自己学习的深入才知道, 如果想要在12306这种反爬手段丰富且持续更新的网站中抢票, 实在不是一件容易的事情.真的是, 不要拿自己的爱好去挑战别人的饭碗.
近些天,年关将至, 为了抢到票, 搜索到了一个开源的抢票软件, 有些人通过它抢到了回家的票, 也有些是抢不到,也和网速以及票数有关的. 稍微看了看别人写的抢票软件, 都是用selenium , 别人浏览器无头模式耍得溜得很, 而我用无头模式却出现了兼容问题然后报错, 别人写的软件能够在一定程度上帮助人抢票, 而自己写的抢票软件, 通过12306的登陆验证还跪在了滑屏验证那里, 请求次数过多, 滑块验证需要使用递归的方法才可以解决, 哪怕是故意代码停顿之后用人工手动滑滑块,也是必须手动验证两次才可以登陆成功. 可能后面被检测出了是selenium, 有些时候, 还出现了其他的问题. 所以不要用自己的爱好去挑战别人的职业, 水平实在是差得太远.我目前的爬虫水平, 也就是使用Scrapy框架, 可以爬取那些不怎么反爬的小网站而已.

对比验证的学习

我以前一直都会写UI自动化的脚本和接口自动化的脚本,但是对于网络请求方面是真的理解的太肤浅了.如今是学习了爬虫之后, 对网络请求的方面理解的稍微深入了一些, 爬虫和 自动化脚本之前有很多类似的地方, 用的库都是差不多的,区别是爬虫是闭卷考试, 而我之前写的很多脚本都是开卷考试, html源码, 对应接口的传参我可以查到自己公司的文档, 前者是注重数据的爬取,而后者是侧重验证功能和数据的准确性.在对比验证中学习, 收获颇丰.

基于协程的异步编程学习

以前一直对于线程,并发,只是有一种浅显的概念和理解, 而我自身对于它们的使用都是基于jmeter这种脚本工具,并没有真的编写过 异步编程的代码.在最近一周多的时间里,终于是接触了这方面的学习, 还编写了一些简单的异步案例.
很多开发大佬都说,什么时候, 回想过去的一段时间, 你能够感觉到之前的自己有多蠢,就是你最近是真的进步了.在此之前,我都是写的同步编程代码,每次当IO阻塞的时候,都是慢慢等待它执行完成.现在学习了异步之后, 才明白自己过去写的一些测试脚本, 性能有多差, 可以 提升效率的地方有多少.曾经有一个接口,它每次返回几百条数据,我之前为了提升效率, 都是对数据进行抽样, 随机数抽取其中的十分之一的数据进行校验, 通过pymysql 查询的数据库里的数据对比接口返回的数据, 每次都会等待很久.现在如果再次让我重构这部分代码,我就可以使用异步编程来解决,不需要抽样进行对比了.
基于协程的异步编程,通过一个 线程利用其IO等待的时间去做一些其他事情.

业精于勤荒于嬉

学习总是很枯燥的, 白天上班,晚上回家后, 总是忍不住扣扣手机,每天能拿出来的时间就不多, 基本是每天有效学习的时候两个小时不到.
但是 韩非子有语, 业精于勤荒于嬉.
换而言之, 在想到和得到之间永远差一个做到.人都需要舒服的生活,但是自己又可以凭什么过的比别人舒服呢? 只有不停的学习,不断地成长,你才可以拥有更多的选择,生而为人,都不容易.爬虫的学习暂告一段落了,不打算深入学习爬虫,从明天开始学习Pyqt5.
近来的工作有些多,也有一些学习效率的下滑,也可能是懈怠了,希望自己从Pyqt5之后,可以恢复正常的效率,给自己立下个目标, 今年五一之前要学完Pyqt5并且可以初步用它做一些小项目.