我选取的是爬取百度知道的html 作为我的搜索源数据,目前先打算做网页标题的搜索,选用了 python 的 scrapy 库来对网页进行爬取,爬取网页的标题,url,以及html,用sqlist3来对爬取的数据源进行管理。
爬取的过程是一个深度优先的过程,设定四个起始 url ,然后维护一个数据库,数据库中有两个表,一个 infoLib,其中存储了爬取的主要信息:标题,url ,html;另一个表为urlLib,存储已经爬取的url,是一个辅助表,在我们爬取每个网页前,需要先判断该网页是否已爬过(是否存在urlLib中)。在数据存储的过程中,使用了SQL的少量语法,由于我之前学过 mysql ,这块处理起来比较驾轻就熟。
深度优先的网页爬取方案是:给定初始 url,爬取这个网页中所有 url,继续对网页中的 url 递归爬取。代码逐段解析在下面,方便自己以后回顾。