Python 是一个跨平台的编程语言,可以在 Linux、Windows 或 Mac OS 上进行一次开发,然后运行在各个平台。

最初接触 Python 差不多是两年多以前了,期间陆续写过几个简单的脚本工具,但对于 Python 的了解乃至使用始终处于门外的程度。究其原因,从这次捡起 Python 来写个相对完整的爬虫程序来看,最主要的原因大概是因为 IDE 环境的问题了,之前写 Python 脚本的时候,笔者没有找到合适自己的开发工具,最开始学习 Python 时使用简单的编辑器编码,使用 Dos 命令行运行 Python 程序,开发效率可想而知。

这次捡起 Python 开发的主要原因是业务驱动,其实接到编写爬虫工具需求的时候,首先想到的就是 Python,可惜最初的使用体验太差,为了能够快速实现爬虫工具,使用熟悉的 OC 开发了一个简单的爬虫工具,陆续维护了几个月笔者就后悔了,各种不方便使用。于是决定使用 Python 重写该爬虫工具,从重新熟悉语法、配置开发工具和运行环境、编码到最终打包程序交付使用,差不多历时一周。

之前虽然有过使用 Python 写过简单脚本工具的经历,但那些真的只能称之为工具,只有一个 Python 文件,还是是面向过程的。这次为了能写个好点的爬虫程序,方便日后维护,也是恶补了一些 Python 的语法,终于出品了一个自我感觉比较良好的爬虫产品。在开发过程中,主要使用了以下技术和方法:

  • 面向对象
  • 分模块、分文件开发
  • 单例模式
  • 多线程并发
  • lxml 解析HTML文本
  • Sqlite 本地缓存
  • PrettyTable 格式化表单输出
  • pyinstaller 打包生成 exe

注:本来还想分包开发的(也就是分文件夹开发),但是 Python3 的分包开发开发还有一些坑,考虑到这次开发的工具差不多在 15~20 个文件之间,为了能快速输出产品,分包的功能先缓缓,日后有需要再研究。

在开发的过程中接触了许多 Python 开发的知识点,考虑到日常使用 Python 开发的机会还是比较少,决定写下这个系列文章,方便以后查阅:

《Python爬虫入门(序)》
《Python爬虫入门-开发环境》
《Python爬虫入门-基础知识》
《Python爬虫入门-进阶知识》
《Python爬虫入门-网络请求》
《Python爬虫入门-数据存储》
《Python爬虫入门-多线程》
《Python爬虫入门-打包程序》

注:笔者已经习惯了 Mac 开发环境,此系列文章除了最后的打包部分是在 Windows 环境进行外,其他部分都是在 Mac 平台基于 Python 3.5 完成。