python3下scrapy爬虫(第十四卷:scrapy+scrapy_redis+scrapyd打造分布式爬虫之执行)

现在我们现在一个分机上引入一个SCRAPY的爬虫项目,要求数据存储在MONGODB中

现在我们需要在SETTING.PY设置我们的爬虫文件

再添加PIPELINE

注释掉的原因是爬虫执行完后,和本地存储完毕还需要向主机进行存储会给主机造成压力

设置完这些后,在MASTER主机开启REDIS服务,将代码复制放在其它主机中,注意操作系统类型以及配置

然后分别在各个主机上进行爬取,爬取速度加大并且结果不同

setting中加入这个可以保证爬虫不会被清空

设置这个决定重新爬取时队列是否清空,一般都用FALSE

我们现在是否分别到主机上执行爬取,现在我想直接在一台主机上控制所有的爬虫程序,现在引入SCRAPYD,他会启动WEB服务来管理所有的项目

看下步骤

1启动SCRAPYD

2可以远程访问

3运用SCPRAPYD-CLIENT来打包项目

4修改爬虫的scrapy.cfg文件

将地址改为远程的SCRAPYD服务地址

执行此命令完成部署

开启一个远程进程

开几条指令,执行几条进程,每一个JOB都个ID如果是多个机器的任务那么ID则不同

原文地址:https://www.cnblogs.com/woshiruge/p/8456743.html

时间: 2024-11-06 07:39:49

python3下scrapy爬虫(第十四卷:scrapy+scrapy_redis+scrapyd打造分布式爬虫之执行)的相关文章

python3下scrapy爬虫(第十三卷:scrapy+scrapy_redis+scrapyd打造分布式爬虫之配置)

之前我们的爬虫都是单机爬取,也是单机维护REQUEST队列, 看一下单机的流程图: 一台主机控制一个队列,现在我要把它放在多机执行,会产生一个事情就是做重复的爬取,毫无意义,所以分布式爬虫的第一个难点出来了,共享请求队列,看一下架构: 三台主机由一个队列控制,意味着还需要一个主机来控制队列,我们一般来用REDIS来控制队列,形成如下分布式架构 从机抓取,存储主机负责控制队列 SCRAPY_REDIS这个插件解决了SCRAPY不能做分布式爬取的问题 它内部的CONNECTION.PY作为连接MAS

Scrapy+Scrapy-redis+Scrapyd+Gerapy 分布式爬虫框架整合

简介:给正在学习的小伙伴们分享一下自己的感悟,如有理解不正确的地方,望指出,感谢~ 首先介绍一下这个标题吧~ 1. Scrapy:是一个基于Twisted的异步IO框架,有了这个框架,我们就不需要等待当前URL抓取完毕之后在进行下一个URL的抓取,抓取效率可以提高很多. 2. Scrapy-redis:虽然Scrapy框架是异步加多线程的,但是我们只能在一台主机上运行,爬取效率还是有限的,Scrapy-redis库为我们提供了Scrapy分布式的队列,调度器,去重等等功能,有了它,我们就可以将多

21天打造分布式爬虫-房天下全国658城市房源(十一)

项目:爬取房天下网站全国所有城市的新房和二手房信息 网站url分析 1.获取所有城市url http://www.fang.com/SoufunFamily.htm 例如:http://cq.fang.com/ 2.新房url http://newhouse.sh.fang.com/house/s/ 3.二手房url http://esf.sh.fang.com/ 4.北京新房和二手房url规则不同 http://newhouse.fang.com/house/s/ http://esf.fan

21天打造分布式爬虫-Crawl爬取小程序社区(八)

8.1.Crawl的用法实战 新建项目 scrapy startproject wxapp scrapy genspider -t crawl wxapp_spider "wxapp-union.com" wxapp_spider.py # -*- coding: utf-8 -*- import scrapy from scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpider,

21天打造分布式爬虫-Selenium爬取拉钩职位信息(六)

6.1.爬取第一页的职位信息 第一页职位信息 from selenium import webdriver from lxml import etree import re import time class LagouSpider(object): def __init__(self): self.driver = webdriver.Chrome() #python职位 self.url = 'https://www.lagou.com/jobs/list_python?labelWords

21天打造分布式爬虫(一)

1.1.urlopen函数的用法 #encoding:utf-8 from urllib import request res = request.urlopen("https://www.cnblogs.com/") print(res.readlines()) #urlopen的参数 #def urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, # *, cafile=None, capath=None,

21天打造分布式爬虫-数据解析实战(三)

3.1.豆瓣电影 使用lxml import requests from lxml import etree headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36', 'Referer':'https://movie.douban.com/' } url = 'https

21天打造分布式爬虫-中国天气网实战(四)

4.1.中国天气网 网址:http://www.weather.com.cn/textFC/hb.shtml 解析:BeautifulSoup4 爬取所有城市的最低天气 import requests from bs4 import BeautifulSoup import html5lib def parse_page(url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/53

21天打造分布式爬虫-urllib库(一)

1.1.urlopen函数的用法 #encoding:utf-8 from urllib import request res = request.urlopen("https://www.cnblogs.com/") print(res.readlines()) #urlopen的参数 #def urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, # *, cafile=None, capath=None,