『Python 爬虫文集梳理』
过去的几年内,我开始了编程。
过去的一年内,我开始了工作生涯。
我学会的第一个编程技能是『爬虫』,工作后,开始接触Golang。
我开始不断的将编程结合业务, 接触越来越多的技术。每天都要学习。好久不接触的东西,又会忘记。但稍微接触下,又都可以想起来。
我开始明白,一个项目是如何提出到落地。
工作中不断的总结。空闲时间,我不断的将接触的新的知识,总结出来。发布出来。没人看, 没关系,在我总结的过程中,自己的梳理,整理,思考。
我在简书不断的写字。大多是技术类文章。每周都在思考,该输出些什么。不输出,感觉就没学习。不输出,就感觉没学透, 学习没抓住重点。
简书创建了一个专题:『爬虫专栏』。
起初只是自己学习 Python 爬虫的学习笔记。后来发现有更多的好多文章。质量高的文章。自己的唯一审核人。一定程度上杜绝某些质量的文章。再后来意识到『编程语言只是工具』,所以专栏里,其他编程语言的爬虫文章也被收入。
下面是个人爬虫文章的合集。一定程度上可以参考,以及路径的选择。
因为是之前的文章,其实回头看看,有不足的地方。
所以再该基础上,我将推出『Golang 爬虫相关的文章』。
- 熟悉golang 语法
- 提高代码质量
专栏地址
下面是之前Python文章合集:
专栏:001: git 简易教程
Git 是一个强大的代码管理工具,Github 是一个市场上最流行的代码托管工具。对于程序员来讲,众多的开源代码,简直是学习的天堂。
编程也需要刻意练习,也需要模仿对象。程序员的模仿对象就是这些优秀的开源代码。
Gerrit 是在 git 的基础上一种代码审查软件。即你写的代码,可以让更有经验的编程者对你的代码进行评审。决定是否合入代码。
专栏:002 :python 文件操作
IO 操作,在编程语言中很常见。对于一些变量和值可以存放在内存中,也可以存在在文件内。
项目中一般会有配置文件,json、yml、ini 等格式的配置文件。配置文件的读写在编程中也很常见。
专栏:003:正则表达式
如何你熟悉Linux shell 命令,正则表达式很常见。需要识记的特殊字符很多。但是达到熟悉工作的地步,完全不需要全部掌握。应该把百分之二十的时间放在百分之八十的知识上。那些生僻的语法,借助搜索引擎搜索即可。
正则表达式的应用很广。以后随着你接触的业务,知识增多。到处会看到正则的身影。
- shell 命令
- 爬虫
- Ansible
- jinja2
...
专栏:004:网页下载器的使用
浏览器将服务端的信息渲染出来。里面包含HTML, CSS, JS等。
获取到的信息并不一定都是我们需要的。需要对获取到的网页信息,进行解析出需要的信息。信息再进行组织成我们需要的格式。
关于HTTP,需要知道
- 请求方式:get、post、put、delete
- 头部信息
- body 体
- response 响应
专栏:005:Beautiful Soup 的使用
获取到的内容需要优雅的解析出来。正则表达式也可以解析出来,但是显的有些复杂。
有专门的库来进行解析,这样解析内容就来的很方便。让编程者专注在实现上。
但是有各种各样的库用于解析。
我们需要考虑:
- 接口的简洁性
- 效率,解析速度
专栏:006:实战爬取博客
对于各种各样的网页,第一步当然不是开始写代码,你应该明白你的目标。以及对网页进行简单的分析,做到心里有数。
- 如何解析
- 如何存储
- 如何展示
专栏:007:xpath使用及其实战
遇到更好的工具,当然我们应该掌握学习。
这也说明,相同的目标,可以使用各种各样的方法达到目标。我们应该选择效率最高的那个。
专栏:008:MySQLdb及其银行模拟转账
内存或者文件存储的方式,对于数据量、或者对数据的组织方式都显的有些缺点。那么有没有更好的对数据的组织方式呢。
有的,数据库。
数据库有各种各样的。那么应该学习掌握那种呢?
先掌握相同类型中的最流行的。知道了基础的增删改查、索引、外键等知道。相应业务里技术选型,技术迁移过去而已。
专栏:009:高评分电影都在这里
实践型知识的学习,最重要的是动手。
实现一个一个的内容,完成一个一个的项目,解决一个一个的问题。
你就开始成长了。
解决问题后, 你开始思考,有没有更优的方式,现在的处理方式有什么问题?
专栏:010:SQL VS No SQL
技术创造出来,都有一定的适用场景。
作为技术人员,当然需要在合适的场景下选择合适的技术选型。这样项目才能向着更优的方向。而不是代码越来越冗余,问题越来越多。
专栏:011:Elasticsearch 的使用
支持全文搜索,比如你想搭建一个垂直领域的搜索引擎,相信会是你的选择。
专栏:012:没时间解释了,快使用sqlalchemy
结构型的数据库或者非结构型的数据库,最大的问题是什么呢?
是你需要编写SQL 语句,这在代码中显得不那么友好,更何况还经常写错。
有没有一种映射关系?实现编程即将类映射到数据表上?有的 ORM 技术就是实现这个。
专栏:013:我要你知道实时票房.
随着你对技术的精进,你肯定开始想要将技术应用在更复杂的领域。
专栏:014:客官,你要的实战我给你.
专栏:015:重构“你要的实战篇"
专栏:016:功能强大的“图片下载器”
一定程度之后,你开始接触框架,发现框架对你实现业务来说,越来越快,你专注于你需要实现的业务。
之后,你可能看着这个框架不舒服,缺少某方面的应用,于是你开始自己默默开发。
甚至你不满足为现有的框架增加功能。你开始自己独立开发框架。
于是,你成为了别人眼中的大神。
一般的爬虫学习路径就是这个:
- 会分析网页
- 会解析网页
- 会解析动态网页
- 会存储数据
- 会单线程爬虫
- 会并发爬虫
- 会分布式爬虫
- 开始造轮子
开始下一个技能。开始攻克下一个技能。