零、前言
本教程面向毫无编程基础的人群,讲述制作出爬虫所需要的最基本知识。目标是让你就算阅读代码如天书,凭借基本知识,复制代码以及使用搜索引擎也可以制作出可用的爬虫。
同时,本教程也是对笔者本人凭借基本知识,复制代码以及使用搜索引擎制作出可用爬虫的快速学习经历的总结归纳。
再同时,本教程也希望分享给读者三条快速学习哲学:
1、寻找趣味,保持专注。兴趣是最好的老师,发掘兴趣是最强的能力。
2、容忍无知,聚焦实用。在缺乏系统性知识的情况下,要快速涉猎不熟悉的领域并做出成果,需要控制知识与无知的平衡,抑制无知带来的焦虑和恐惧。容忍无知,即用为主,研究为辅。
3、合理抽象,善用搜索。你所遇到的问题几乎总已经被其他人遇到过了。抽象出正确的关键字,选择合适的搜索引擎(不论是百度,谷歌或者是知乎),问题常常可以迎刃而解。
本教程教学用例
爬取对象:中国玩具和婴童用品协会企业黄页
http://www.wjyt-china.org/pagecontrol.do?action=mygslist&object=ToyCompanyYellowAction
爬取任务:遍历企业黄页上的全部企业,进入每个企业的“公司介绍”页面,在公司介绍文本中搜索“研发”或“研制”字样。统计爬取公司总数,所有公司的名称,含有目标字样公司的数目及名称。
一、概述
网络爬虫(Web Crawler)简称爬虫。据百度百科定义,爬虫是按照一定的规则,自动地抓取万维网信息的程序或者脚本。
这个定义准确地抓住了三个关键点。第一,爬虫的目的是抓取网络上的信息,我们可以通过这个工具进行自动的信息爬取。第二,爬虫的本质是程序或脚本,我们需要一个程序或脚本的编辑器来制造它。第三、爬虫的行为是按规则进行的,我们需要为一个并不拥有“智慧”的机器人程序设计严格而严谨地行为规范。总的来说,当我们需要从网络上自动爬取信息,我们就通过程序编辑器,通过设定一系列的行为规范制造出一个机器人程序。这个程序就是爬虫。
爬虫作为机器人程序,具有能够快速且无休无止地爬取大量数据的优点。
二、知识结构
在能够亲手制作出理想的爬虫之前,我们首先需要学习爬虫技术及其前置知识。制作一个简单爬虫需要以下知识:HTML,JavaScript,Python,Python语言的urllib2库。
我们为什么需要这些知识呢?
首先,我们需要了解我们爬取的对象——网页。我们希望爬取网页中的信息,就需要首先了解信息在网页中是如何储存的。绝大多数情况下,网页以HTML为骨架,JavaScript为肌肉,CSS为皮肤。这个比喻是说,HTML制造网页的结构,JavaScript负责网页的动态内容,而CSS对网页进行装饰。我们的目的是爬取网页上的文字或图片