惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
博客园 - 【当耐特】
WordPress大学
WordPress大学
爱范儿
爱范儿
美团技术团队
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
量子位
Hugging Face - Blog
Hugging Face - Blog
B
Blog RSS Feed
Recorded Future
Recorded Future
Engineering at Meta
Engineering at Meta
雷峰网
雷峰网
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
M
MIT News - Artificial intelligence
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 聂微东
H
Hackread – Cybersecurity News, Data Breaches, AI and More
腾讯CDC
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
博客园 - 叶小钗
GbyAI
GbyAI
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
F
Full Disclosure
G
Google Developers Blog
D
Docker
T
Tailwind CSS Blog
C
Check Point Blog
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
T
The Blog of Author Tim Ferriss
B
Blog
博客园 - 三生石上(FineUI控件)
博客园 - Franky
H
Help Net Security
MyScale Blog
MyScale Blog
U
Unit 42
D
DataBreaches.Net
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
InfoQ
阮一峰的网络日志
阮一峰的网络日志
The GitHub Blog
The GitHub Blog
L
LangChain Blog
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
Microsoft Security Blog
Microsoft Security Blog

Jun's Blog

2023 年度总结 OS 学习记 之 XV6 如何编译 GraalVM LLVM 中端优化之 InstCombine C++ 中 inline 关键字的语义 链接与库 C++ 移动语义基础 如何优化矩阵相乘 2022年度总结 CUDA初学笔记 汇编语言之保护模式 汇编语言之实模式 浅析 libc++ 中的 string 实现 std::expected 基本使用 C++模板基础 CSAPP第九章笔记之虚拟内存 CSAPP第八章笔记之异常控制流 2021年度总结 编译安装GCC12 如何给LLVM贡献代码 CSAPP第三章笔记Part 2 CSAPP第三章笔记Part 1 GDB基本使用笔记 读Effetive Modern C++ 之类型推导 给计算机新生的一封信 CMake学习笔记 由Redis学习数据结构--字典 C++中lambda表达式基础 由Redis学习数据结构--链表 Vim实用技巧 浅谈C++中的类 简要剖析const关键字 正则表达式基础总结 使用Hugo和Firebase部署个人博客 浅谈HTTPS证书 Linux常用命令总结 Git学习笔记 Linux下使用v2ray 娱乐至死读书笔记 自控力读书笔记 少有人走的路力读书笔记 Postfix & Dovecot 自建邮箱服务 Linux用户管理 Linux开机流程 Linux文件与目录 Linux硬盘管理 Linux服务浅谈 About Me
对Python及爬虫行业的思考
Jun · 2021-04-03 · via Jun's Blog

· Jun

前言

最近在帮兄弟大学做一个关于机器学习的项目,其实我做的工作和人工智能半点关系也没有,主要就是用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!