scrapy通过scrapyinghub实现24小时爬虫托管爬取

本文仅供学习参考作用,概不对任何事情进行负责!

前言
当我们在对网上的数据进行爬取,但是需要爬取的数据量特别大,爬取的时间特别长的时候(比如需要爬一周),我们难免会思考一个问题:我总不可能一直将电脑开着去抓取数据吧?
这个时候我们一般有两种解决方案:1.购买云服务器进行24小时的爬取.2.通过爬虫托管网站进行24小时的爬取.
本文将介绍第二种方法,通过scrapy的scrapyinghub实现24小时的爬虫托管爬取


目录
1.需求背景
2.scapyinghub介绍
3.实现流程


1.需求背景

最近学校有一门搜索引擎的课程,我们需要搭建一个自己的搜索引擎.搭建搜索引擎的过程中我们需要有数据进行填充.这个时候我们准备将中国可移动文物普查网中的所有文物数据爬取到我们手中,并对拿到的数据进行二次加工组装成属于我们自己的文物搜索引擎.由于需要爬取的文物数据很多,有23w左右,所以在本地爬取的技术路线我们放弃,并且想到了通过scrapyinghub进行爬虫托管.

2.scrapyinghub介绍

scrapyinghub地址:

https://scrapinghub.com/

Scrape Cloud是scrapy基于云的Web爬行平台,可以轻松部署抓取工具并按需扩展,无需担心服务器,监控,备份或cron作业。他帮助开发人员每月将超过20亿个网页转化为有价值的数据.


3.实现流程

3.1部署scrapy到cloud
有梯子的同学可以看官网的教程

https://helpdesk.scrapinghub.com/support/solutions/articles/22000201028-learn-scrapy-video-tutorials-

首先我们在scrapyinghub上注册一个账号并且登录到管理控制台,点击右上方的create project按钮新建一个项目


当然了,我们只是将先有的scrapy爬虫部署到云上去,所以我们选择bulid spider with scrapy

然后我们将视线转移到我们的服务器上,首先安装shub

pip install shub

安装成以后,在服务器上登录我们的scrapy cloud

shub login

提示输入API key ,我们复制命令行中出现的网址并且进入


复制其中的API key到shell中

成功!
这个时候我们就需要使用shub deploy命令将本地的scrapy上传到cloud

shub deploy


由于我们之前操作过,所以自动将projectID填入了.当然了,如果我们是第一次使用的话只需要在我们cloud的控制台的URL中找到projectID并输入到shell中即可

上传scrapy成功!


这个时候我们就可以在cloud上运行我们的spider了!在Dashborad选项卡中的右上方点击run,我们就可以愉快的选择我们的spider啦!

3.2爬取优化方案
对于23W的数据,我们在之前的初步爬取中按照当前cloud的爬取速度我们预估要24个整天才能爬完,这个速度我们显然是不能接受的.
于是我们优化爬取方案为将当前爬虫分解成10个爬虫对网站进行爬取.这种方法也有隐患:过多的爬虫会导致网站服务器压力倍增,很可能导致其网站瘫痪.
所以,考虑到这个情况,我们将爬虫的爬取时间设置成了晚上11点到早上11点.
优化过后的爬虫方案,将爬取的时间缩短为了4.8天,大大的增加了爬取的效率.

小Tips:scrapyinghub默认一个project只能同时run一个爬虫,所以如何让多个爬虫同时运行在scrapyinghub以提升爬取效率呢?我们只需要新建多个organization即可,每一个organization都可以run一个爬虫~


现在我们就有2个正在run的爬虫啦~

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 129,390评论 18 137
  • scrapy学习笔记(有示例版) 我的博客 scrapy学习笔记1.使用scrapy1.1创建工程1.2创建爬虫模...
    陈思煜阅读 12,099评论 4 46
  • scrapy是python最有名的爬虫框架之一,可以很方便的进行web抓取,并且提供了很强的定制型,这里记录简单学...
    bomo阅读 1,678评论 1 12
  • 这两天摸索了下scrapy,刚看文档的时候觉得有点生无可恋,scrapy框架个人还是觉得比较难懂的,需要学习的地方...
    Treehl阅读 5,130评论 7 10
  • 累哭 蠢哭 今晚着实被自己蠢哭 怎么办 呜呜呜
    MissJaen阅读 55评论 0 0
  • 这世间,有多少永远值得等待,我不知道。 一份感情的无疾而终,一个生命的猝然陨落,都那么让人措手不及。 都来不及伤感...
    七玺阅读 133评论 0 0
  • 文|华梦艺 封面上少男少女紧紧抱着怀中的课本依偎在一起,男生抚额做纠结状,女生低头沉思,身后的地中海大叔和眼镜大叔...
    知识分子阅读 304评论 0 1
  • 学会分享阅读 89评论 0 0
  • 文/随便公子 我一直是那种很用力生活的人,就是那种想用100冲刺的速度跑3000米或是更远的路程的人,知其不可为而...
    踏歌行97阅读 206评论 0 3