最近频繁的给客户作采集功能,既然代码没法公布,因此一直想写个思路类的文章.
既然是简单的爬虫,那么一切天然以简单为原则,能少用的都少用,好比python和Redis这两个神兵利器就被我省略了.
打造这只虫子就像是樵夫砍柴通常,该磨刀仍是要磨刀.php
拜拜山头python
对象站点:国内知名电商平台如蘑菇街,惟品会等.
实现需求:站群模式可将对方店铺或商品采集根据指定接口分发数据,并过滤指定关键字及自定义商品售价浏览器
利刃在手多线程
1.安装=无头浏览器phantomjs,相似的无头浏览器或者在他们基础上衍生的东西有不少,但phantomjs基本上能够知足需求,用法也简单,因此本次就选用它了.
2.安装=多线程扩展pthreads,因为python和Redis对于一些phper而言增长了学习成本(话说如今会php的不懂他两的应该不多了吧),因为phantomjs从加载到渲染是比较慢的,为了提升效率,咱们须要用到多线程.学习
山里事儿多网站
1.随机代理:由于采集是全自动化的,须要不断的访问被爬的站点,为了防止被屏蔽,从代理站抓一些IP来掩饰是不错的方法.
2.URL自动增补:有些网站页面的的url用的相对路径,因此补全是必备的.
3.深度控制:例如采集商品的时候很容易由于关联商品而陷入无止境的挖掘
4.任务分布:虽然没有用到Redis,本次的采集须要将任务下发给其他站点
5.内容过滤:如今比较头疼的是一些商城或店铺有水印,这个暂时无解.url
因为本次采集在建立任务时已经预设了采集对象,例如按店采集,按商品采集.因此开头的第一步就省略了.spa