2

对Python及爬虫行业的思考

 3 years ago
source link: https://www.junz.org/post/thoughts_about_python_crawl/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

最近在帮兄弟大学做一个关于机器学习的项目,其实我做的工作和人工智能半点关系也没有,主要就是用Python做爬虫帮他们爬取一些公开信息。其实很久之前我就决心不再参与任何爬虫项目了,但这次因为一些原因我还是选择了参加。随着我在这个项目上花的时间越来越多,我对Python爬虫这个行业也思考的越来越多。在这里我从自己接触Python开始,谈一下自己对Python爬虫以及市面上的一些培训班的想法。

初识Python

在我上高中的时候很喜欢折腾一些关于IT的东西,其中就涉及到了做网站。当时在各大论坛及QQ群里都会听到他们说采集这个词。当时的我可以说是什么都不懂,只感觉这个词听上去就很高级。又自以为如果有一种方法可以把网上各种有趣的信息都“采集”到自己手上岂不是太棒了?于是好学的我便开始在Google上搜索相关的文章。很快我便了解到了Python这个语言以及“爬虫”这个词。只要在搜索引擎上搜索“Python 爬虫”,就会一大堆文章,教程,资料。

学习Python爬虫

在我了解到世上还有Python和爬虫这么有趣的东西后,我便开始在网上搜索各种教程(记得没错的话,当时主要看的是廖雪峰),以及加了各种学习群,在网盘上存了一堆视频和电子书。当时在上高中,学习十分紧张,我就每天中午和晚上回家时利用加起来不到1个小时的时间在手机上看关于Python的各种教程和文章。在这里不禁感慨当时母亲大人对我使用手机的管制,我们当时还经常因为这个事情吵架。可她怎么会知道我其实一直都是用手机在学习呢?(哈哈哈) 经过一年多断断续续的学习,看电子书和博客教程,我终于零基础入门了编程,从requests库都不知道是啥到可以自己独立写一个简单的爬虫了。

初遇爬虫瓶颈

在我能够自己写出一个爬取漂亮小姐姐图片的爬虫后,我并没有满足,而是尝试去写各种其他的爬虫。但很快我就发现爬虫并没有我想的那么简单。真正的爬虫并不是简单地获取网页,解析网页,下载数据就行的。在搜索了一些文章后,我发现原来真正的网站都是有反爬措施的,如果想要拿到数据的话,就必须要逆向它的JavaScript代码,获取它加密参数或者是数据的算法。于是看来我除了学习如何逆向JavaScript代码没有任何选择了,但是那个时候已经邻近高考了,我没有时间和精力再去一门新的语言了,所以我心里默默地把这个计划延迟到了高考后的那个暑假。在此之前,我所做的就是看看菜鸟教程和廖雪峰的博客,简单了解下JavaScript的基本使用。

开始学习反反爬虫

时间一转,我就已经高中毕业了。记得在等待高考成绩公布的那段日子,我每天干的事情就是学习JavaScript(当时看的是JavaScript高级程序设计这本书)然后还买了一个培训机构的课和知识星球。(没听错,我真的氪金了,还氪了不少)可我真正去看了他们的公开课之后,我发现它所教给我的,并不能真正地能帮我过掉那些网站的反爬虫措施。它所教我的,不过是告诉我谷歌浏览器的DevTools用法,如何调试网页,以及一些常用套路罢了。当然,利用这些技巧,确实可以过掉一些非常低级的反爬虫,可对于行业内有名的,有价值的反爬虫,丝毫没有帮助。还想继续学吗?请购买我们的进阶课程,只要1999。我逐渐开始意识到爬虫界的水比我要想的深得多的多。再加上那段时间发生的其他事情,我逐渐决定放弃爬虫这条路了。

其中原因有下面几点:

  1. 爬虫的关键点并不在于“爬”,而是在于如何过掉别人的反爬虫,或者说如何逆向别人的JavaScript代码。而你在这个过程中,是单枪匹马一个人,对方则是有一个专业的团队在维护者。而且,你作为爬虫方,相当地被动,只要对面对逻辑进行稍稍变化,你就无法顺利拿到数据,只能重新开始分析。

  2. 法律问题。爬虫在国内可以说是一个相当灰色的行业,并没有完善的法律法规去规范这个行业。有相当一部分人因为爬虫而进了监狱。你可能会说,我只要不去爬一些敏感的数据,不去采集一些个人信息,就不用担心这个问题。可我却认为,只要你动了别人的蛋糕,他们就有能力通过强大的法务团队将你送进监狱。这并不是危言悚听,只要你仔细关注下新闻你就可以发现,有很多开发者就是因为动了一些大公司的利益,被迫停掉了自己手上的项目,更有甚者,赔款,进监狱。

市面上编程语言那么多,为什么那么多培训机构都要打着Python爬虫的口号呢?我个人认为原因很简单也很直接:首先Python的语法相当于Java C++更简单,流畅,适合初学者学习,而在Python众多领域中,爬虫又是最容易教的。从我加入的那些爬虫交流群来看,很多购买培训班课程的人都是非科班出身,想想看生活的压力,培训班的诱人的广告,让他们不禁动了心,想通过自学编程这条路成功。

然而事实真的有培训班老师所宣传的那么美好么?在购买培训班课程后有多少人真正去学了呢?而那些真正去学了的人又有多少拿到心中的offer呢?就我自己来说,因为我是有一点基础的,所以我学起来他们的课程并没有那么吃力,但我最后也还是选择了放弃。

在今天爬虫行业的金字塔上,在顶层的,是一些身怀绝技的大神,他们可以轻松破掉那些没有人性的加密与混淆,拿到想要的数据和高薪;在底层的,则是一大堆非科班,非专业的韭菜们。他们想通过编程这条路改变命运,却又缺乏专业知识,只会一些非常基本的知识。与其说他们是爬虫工程师,不如说他们是xpath工程师。而介于两者之间的,则是唯利是图的培训班们,他们在各种平台散播各种广告,利用所谓的学习资料吸引大量前面所说的韭菜们,可又没办法交给他们一些真正有价值的知识(高级的反反爬虫可能侵犯到一些商业公司的利益)我这里只是说Python爬虫,但我相信其他的很多培训班也都大差不差。

我知道在当前这个如此内卷的社会中,大家都想急切地赚大钱,过上好生活,改变自己的命运。可是,这个世界上没有能轻而易举达到的成功,如果有,也不会绝对不会属于你。与其想找到某个所谓的捷径,不如静下心来花时间慢慢提升自己。随着时间的推移,再小的进步都可以像滚雪球一样被积累成质的改变。

这些就是我个人的一些思考了,可能很不成熟,也可能漏洞百出,但这真的是我自己在这些事情中独立的一些观察和思考。在帮老师做完这个项目之后,我就不打算接触任何与爬虫相关的东西了。希望以后可以做好开发岗,build some cool stuff!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK