这个系列文章还在逐步完成中,可能会多次编辑
这是一个系列文章,关于定制爬虫,使用scrapy.
这是前言.
爬虫,最广为所知用途是搜索引擎的网页抓取.也有很多其他的用途.
诸如各类比价网站(etao,惠惠购物助手等),信息聚合,采集站等等.这种爬虫不像通用的搜索引擎爬虫,他们往往有各自的目的,例如比价网站,其爬虫周期性的从网上获取物品的价格信息.信息聚合站点将一类信息通过爬虫采集后呈现.
在几年前比价这个概念还不像现在这样广泛时,我在一个群里听人说及他正在开发一个购物比价的产品.想着这难度还是不小的.不确定那时是否有各类成熟的框架或示例供参考.他要实现一个下载调度,解析内容,爬取策略,等等等等.实际上我当时感觉,最大的难点在于,被爬取网站每改版一次,他的解析器就得重写一次,非常麻烦.但实际上网站的改版不会如此频繁,解析内容部分对应修改即可.略惊讶的是,比价这个概念,在2000年左右就有了(如果没记错我是在http权威指南的某部分看到的).
最近我玩了一下爬虫.在此之前,我对http,web相关规范,web自动化(用于测试,我用这个来写web机器人.)也有一定了解.
在这个过程中遇到了一系列的问题.包括
1,javascript动态生成内容处理.
2,html,http等相关规范及细节问题.
3,调度,效率等.
4,大规模爬取相关...
etc...
这个系列文章将涉及这些问题.这篇文章并不是doc,tutorial性质.更多的是讲解实际问题.看之前你需要较为了解scrapy.如果你在使用scrapy定制一个你自己的爬虫,你会发现这篇文章有用之处.
为什么是scrapy,答案很简单,我比较擅长python,scrapy是一个python的爬虫框架.以scrape,spider,crawl之类关键字到pypi,google去搜索,还会找到其他一些python的爬虫框架.对于绝大多数场景,scrapy足够好.当你了解足够多觉得或许该看下其他python的爬虫框架时,你可以参考下gcrawler,它更轻.一个特性是gcrawler没有实现类似scrapy的downloader部分,因此每个request需要你自行处理如何得到对应response.这在某些时候更方便.
来源:oschina
链接:https://my.oschina.net/u/1024140/blog/119471