爬虫篇 | 工欲善其事,必先利其器
共 2377字,需浏览 5分钟
·
2021-09-29 08:44
点击上方“Python编程学堂”,关注公众号并“星标”
获取新朋友福利
前面一个【爬虫篇】的文章分享了网络爬虫的含义、分类、组成、思路以及网络爬虫协议(Robots协议),对爬虫有了初步的了解,本节重点分享学习爬虫,你需要学会选择。(详见:爬虫篇 | 这是你了解的爬虫吗?——爬虫概述)
一、编程语言的选择
能够做网络爬虫的编程语言很多,包括PHP、Java、C/C++、Python等都能做爬虫,都能达到抓取想要的数据资源。那我们该怎么选择编程语言呢?首先我们需要了解他们做爬虫的优缺点,才能选出合适的开发环境。
(一)PHP
网络爬虫需要快速的从服务器中抓取需要的数据,有时数据量较大时需要进行多线程抓取。PHP虽然是世界上最好的语言,但是PHP对多线程、异步支持不足,并发不足,而爬虫程序对速度和效率要求极高,所以说PHP天生不是做爬虫的。
(二)C/C++
C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发,运行效率和性能是最强大的,但是它的学习成本非常高,需要有很好地编程知识基础,对于初学者或者编程知识不是很好地程序员来说,不是一个很好的选择。当然,能够用C/C++编写爬虫程序,足以说明能力很强,但是绝不是最正确的选择。
(三)Java
在网络爬虫方面,作为Python最大的对手Java,拥有强大的生态圈。但是Java本身很笨重,代码量大。由于爬虫与反爬虫的较量是持久的,也是频繁的,刚写好的爬虫程序很可能就不能用了。爬虫程序需要经常性的修改部分代码。而Java的重构成本比较高,任何修改都会导致大量代码的变动。
(四)Python
Python在设计上坚持了清晰划一的风格,易读、易维护,语法优美、代码简洁、开发效率高、第三方模块多。并且拥有强大的爬虫Scrapy,以及成熟高效的scrapy-redis分布式策略。实现同样的爬虫功能,代码量少,而且维护方便,开发效率高。
通过以上比较,各种编程语言各有优缺点,但对于初学者来说,用Python进行网络爬虫开发,无疑是一个非常棒的选择。本人今后对爬虫篇分享的内容就是使用Python 3 编程语言进行的。
二、集成开发工具的选择
Python的集成开发环境有很多,这里推荐两款不错的 Python集成开发工具,一个是PyCharm,一个是 Sublime Text,当然适合自己的 Python IDE才是最好用的。
(一)PyCharm
PyCharm 是由 JetBrains 打造的一款 Python IDE。具备一般 Python IDE 的功能,比如:调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。其提供了一个带编码补全,代码片段,支持代码折叠和分割窗口的智能、可配置的编辑器,可帮助用户更快更轻松的完成编码工作。
(二)Sublime Text
Sublime Text 具有漂亮的用户界面和强大的功能,例如代码缩略图,Python 的插件,代码段等。还可自定义键绑定,菜单和工具栏。主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。
Sublime Text 是一个跨平台的编辑器,同时支持 Windows、Linux、Mac OS X等操作系统。
对于集成开发工具,没有绝对的好,适合自己的就是最好的。这里推荐使用小巧、便捷的Sublime Text编辑器。
三、需要的技能
(一)Python基本语法
这里就不再赘述,如有不懂得建议关注公众号参考之前的文章或者网上搜索教程。
(二)了解HTTP协议,会使用urllib库
HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。会使用urllib库模拟浏览器发送请求,获取服务器响应的数据。
(三)解析响应内容
Python强大的库提供丰富的解析库,会使用re、xpath、BeautifulSoup4、jsonpath、pyquery等中的一种或几种。目的是使用某种描述性语法来提取匹配规则的数据。
(四)动态页面及验证码的处理
有些网页的内容是非静态的页面数据,需要懂得如何动态加载网页内容。为了防止恶意的爬虫,有的网页提供了验证码的处理,需要能获取验证码并机器识别出内容,实现自动化处理。
(五)会使用抓包工具
浏览器自带的“开发人员工具”虽然也能够实现抓包,但是对于一些复杂的网页,简单的这个抓包工具是不行的,你需要会使用Flidder、Httpwatch、Charles等抓包工具,会使用一到两个就可以。
总结
以上内容看着摸不着头脑,感觉挺难的,但是由于Python简洁的语法、强大的第三方库,使得Python做爬虫很方便、便捷。下期内容将让你见识Python爬虫简单到不能再简单,让你爱不释手。
推荐阅读:
喜欢的话,请给我个好看吧!