Scrapy

There are 2 entries for the tag Scrapy

使用Scrapy构建自己的定制网络爬虫

MitchellChu 2016-03-12 其他技术 编程语言

爬虫(Web Spider or Web Crawler),顾名思义:一个在网站之间互相游走的虫子,专好觅食各类页面数据。随着Spider技术门槛降低,爬虫也开始泛滥起来,很多时候爬虫变成了扒虫。然,技术本无善恶,全在用者之念。此处不做过多计较,我们当下要讨论也仅仅是定制一款自己的网络爬虫,仅此。
爬虫就Mitchell个人经验来说分为两大类:
•通用型网络爬虫:该类爬虫并无明确采集目标,每个能够爬及的页面都是其采集对象,除非满足系统指定条件,否则此类爬虫基本全年无休的辛勤劳作。最常见的就是搜索引擎的爬虫,如:Google,Baidu,Yahoo,Bing等;
•专用型网络爬虫:这种爬虫仅针对自身偏好的网站或者主题作为采集目标,采集到的内容或涉及到的URL为此爬虫不感兴趣的,将被爬虫直接忽略,此类爬虫根据需要采集的目标多寡采集时间有所不同。如:各类垂直搜索站,金融爬虫,站点采集等;

用时间换空间的缓存算法

MitchellChu 2016-02-18 其他技术 编程语言

在使用Scrapy爬网站的时候,产生出来的附加产物,因为在Scrapy爬取的时候,CPU的运行时间紧迫度不高(访问频次太高容易被封禁),借此机会难得来上一下,让自己的内存解放一下。 算法原理: 通过将要缓存的数据用二进制展开,得到的二进制数据映射到缓存字段上,要检验是否已经缓存过,仅需要去查找对应的映射位置即可,如果全部匹配上,则已经缓存。 # 二进制就是个二叉树 # 如下面可以表示出来的数据有0, 1, 2, 3四个(两个树独立) 0 1 / \ / \ 0 1 0 1 因此对缓存的操作就转化为对二叉树的操作,添加和查找只要在二叉树上找到对应路径的node即可。   算法关键代码: def _read_bit(self, data, position): return (data >> position) & 0x1 def _write_bit(self, data, position, value): return data | value << position   实际使用效果如何呢? 在和Python默认的set相比较,得出测试结果如下(存取整型,不定长字符串,定长字符串): Please select test mode:4 Please enter test times:1000 ==================================================================================================== TEST RESULT:: ==================================================================================================== set() ...

关于博主

  一枚成分复杂的网络IT分子,属于互联网行业分类中的杂牌军。