过去的几年内,我开始了编程。

过去的一年内,我开始了工作生涯。

我学会的第一个编程技能是『爬虫』,工作后,开始接触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:功能强大的“图片下载器”

一定程度之后,你开始接触框架,发现框架对你实现业务来说,越来越快,你专注于你需要实现的业务。

之后,你可能看着这个框架不舒服,缺少某方面的应用,于是你开始自己默默开发。

甚至你不满足为现有的框架增加功能。你开始自己独立开发框架。

于是,你成为了别人眼中的大神。


一般的爬虫学习路径就是这个:

  • 会分析网页
  • 会解析网页
  • 会解析动态网页
  • 会存储数据
  • 会单线程爬虫
  • 会并发爬虫
  • 会分布式爬虫
  • 开始造轮子

开始下一个技能。开始攻克下一个技能。

文章来源于互联网:『Python 爬虫文集梳理』

发表评论