xlzd 杂谈
首发于xlzd 杂谈
Web crawler with Python - 01.准备

Web crawler with Python - 01.准备

(P.S.你也可以在我的博客阅读这篇文章


我要干什么

在工作和平时经常会接触到网络爬虫的编写,从简单的单页面抓取到复杂的海量数据抓取再到社交网络数据抓取都有涉及,其中很多东西可以总结成规律供参考,特从今天开始逐步由浅入深记录下爬虫的经验。

在这个过程中,我会分享自己的经验和教训,但是也可能会由于自身的能力有限而出现纰漏,望读者自己斟酌。


爬虫是什么

其实这个已经没什么好说的了,既然你看到了这里,就说明你至少明白爬虫是什么东西了,所以自己就不多废话了,下面这段介绍摘自维基百科——

網路蜘蛛(Web spider)也叫网络爬虫(Web crawler)1,蚂蚁(ant),自动检索工具(automatic indexer),或者(在FOAF软件概念中)网络疾走(WEB scutter),是一种「自動化瀏覽網路」的程式,或者说是一种网络机器人。它们被广泛用于互联网搜索引擎或其他类似网站,以获取或更新这些网站的内容和检索方式。它们可以自动采集所有其能够访问到的页面内容,以供搜索引擎做进一步处理(分检整理下载的页面),而使得用户能更快的检索到他们需要的信息。


你需要什么

在正式开始阅读接下来的博客之前,你需要熟悉以下几点知识:

  • Python的基础使用:我会在博客中使用Python2.7.x版本,不过大部分语法会同样适用于Python3,而且使用到的库大部分也是支持Python3的。
  • 正则表达式:在解析网页的时候,偶尔会遇到使用正则表达式的情况,你至少要知道什么叫做正则表达式
  • HTML:你至少要简单的知道HTML文档的结构。
  • HTTP:同上,有一个大致的概念就好。
  • 数据库:你至少需要知道SQL和NoSQL的概念,鉴于爬虫抓取数据的结构,我们更多会使用到NoSQL数据库(这里更多是使用MongoDB),你可以先看一下MongoDB的简单使用:MongoDB简单介绍

顺便提一句,我在网上搜到的大部分爬虫教程都是教怎么使用Scrapy的,这是一个很好的框架,不过在使用过程中我发现,对于需要极大程度定制化的爬虫,Scrapy反而有些不方便,所以这个系列的博客中,不会提到任何关于Scrapy的使用,我们接下来要做的,是面临任何爬取需求,都可以轻松的处理。


Let's go

OK,准备好了,就一步一步从简单到复杂开始写爬虫吧。

文章被以下专栏收录