软微虫师带你一天入门分布式 络爬虫

  • 分布式 络爬虫实战之草根
    • 安装
    • 实战
    • 理论部分
      • 分布式的流程
      • 项目文件简介
      • 核心代码
    • 注意事项
    • 总结
    • 相关资料

分布式 络爬虫实战之草根

简介:本篇文章主要针对一些对 络爬虫感兴趣的初学者,快速让你们入门分布式 络爬虫架构,这篇文章以草根 为例,大家准备好电脑跟着我一步一步走,相信花个一天的时间能对分布式与爬虫有个很好的认识,下面我们就开始了!

安装

1 scrapy

ps.安装对于不同的环境配置都会有不同,这里我很难给出一个详细的教程,大家根据自己的情况Google一下或者我这里推荐一些我认为不错的

  • scrapy安装教程-win
  • scrapy安装教程-mac
  • scrapy安装教程-ubuntu

安装好之后打开界面输入

,如果安装成功应该会出现如下界面:

ps. 如果有基础的朋友直接按照git上的 走就行,这篇文章只针对入门级别的朋友。

3 我们首先运行这个项目,我们进入文件,如果上面都配置好了,直接运行该文件即可:

ps. 如果有scrapy基础的朋友,直接用命令运行也行

运行完成后,我们查看控制台和redis数据库,如下图:

ps. 简单的来说我们已经完成了发布任务的过程,爬虫过程中url就相当于老板发布的任务,那么下面就需要员工来接收并且执行。

4 下面我们进入项目中,同样,我们直接进入到 文件中,直接运行或者终端输入:

  • 你可以理解为员工,员工的工作就是等待老板发布任务,上面步骤3中老板已经发布了任务了,那么运行后我们可以看到数据库中多了一些,如图:

  • 最后我们再来看一下数据库中有没有存入进去,如图:

    • 可能全是英文看着很难受,下面我们约定几个称呼:

    1. 老板先发放任务给仓库。

    2. 员工从仓库中取出任务去执行。

    3. 员工做完了事后把成果放回仓库。

    4. 老板 只需要一直等待收获成果就行,然后把成果 存入自己的小金库。

    • 项目中就这四个步骤依次循环,这就是一个简单的分布式爬虫的基本流程,那么下面我来简单的介绍下项目中的关键文件和核心代码

    项目文件简介

      这里可能有点难,没关系,就过一下就行,整体的思路把握住了最重要。

      • 老板等待成果放入小金库:
      • 这一段意思就是老板一直在等待仓库中是否有成果,有的话就这个成果,将他放入小金库。

      ps. 里面很多函数名是重写框架里面的,所以函数名是固定的,这里我不讲scrapy的内部原理,详细的可以参考后面的相关资料进行学习。

      注意事项

      1 这里之所以选择草根 是因为针对入门级的朋友来说在 站的分析方面时间成本很少,且静态 站不怎么更新DOM结构,对于一些刚入门的人来说会更容易接受一些。

      2 如果项目运行中缺少什么模块,请自行根据 错信息安装,这里不可能给出全部的可能。

      3 项目中没有设置一些中间件,只是单纯的展示一遍分布式爬虫的基本流程,有兴趣的朋友可以自己增加一些中间件比如设置代理,设置User-Agent等。

      4 如果项目中在运行时有什么bug,请留言。

      5 该项目要master端和slaver端一起运行才能展示效果,请注意。

      6 该项目重点是了解分布式的爬虫流程,具体的爬虫细节以及架构的内部原理请参考下面给出的相关资料进行学习。

      7 所有的文档都没有框架源码阅读更加详细,有兴趣的读者可以花时间通读一遍scrapy和scrapy-redis的源码,会更有帮助。

      总结

      相信大家对分布式爬虫有了一个新的认识,其实一点也不难,这样做的好处就是减轻主服务器的压力,并且增加了项目的可拓展性。
      络爬虫到后面更多的是分析 站,比如一些加密参数的运行分析,抓包接口,等等,大家如果有兴趣可以试着去爬淘宝,头条,微信等一些 站,我前几天也写了一个关于 易云音乐评论的信息抓取,就涉及一些加密参数需要解析才能获取真实接口。
      后续应该有时间还会继续带来更加精彩的教程!

      相关资料

      • scrapy中文文档
      • scrapy-redis架构分析
      • scrapy-redis相关教程
      • python操作redis
      • xpath语法基础
      • 正则表达式语法基础

      文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树 络爬虫urllib208386 人正在系统学习中

      声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2018年1月6日
    下一篇 2018年1月6日

    相关推荐