Scrapy框架-通过Scrapyd来部署爬虫

简介: 前言爬虫写完了,很多时候本机部署就可以了,但是总有需要部署到服务器的需求,网上的文章也比较多,复制的也比较多,从下午3点钟摸索到晚上22点,这里记录一下。

前言

爬虫写完了,很多时候本机部署就可以了,但是总有需要部署到服务器的需求,网上的文章也比较多,复制的也比较多,从下午3点钟摸索到晚上22点,这里记录一下。


环境情况

  • 我的系统是Deepin
  • 开发环境也是Deepin,python 环境用的是Anaconda建立的虚拟环境(python3.6)
  • 部署系统是本机的Deepin
  • 部署环境由于在本机部署,所以跟开发环境一致(就是这里有个坑)
  • 用到的服务是scrapyd

参考文章

网上对于scrapy部署的文章真是很多,一搜就很多页结果,但是我看很多都是复制粘贴,命令错了也没改。我的是综合多个文章来实际执行的,这里列一下我看过的文章:


介绍

Scrapyd是scrapinghub官方提供的爬虫管理、部署、监控的方案,文档传送


安装scrapyd

对于它的安装,网上的说法层出不穷,有可能是老版本吧?

我的安装很简单,在本机虚拟环境中 pip isntall scrapyd,就完成了

没有安装scrapyd-client也没有安装scrapyd-deploy,就是这么简简单单。


使用

它的使用有3个步骤

1、为了检查是否安装正确,在电脑任意一个地方打开终端(再次强调,我的电脑系统是linux),输入scrapyd,如果没有报错,请打开 http://localhost:6800 ,看到如下画面则代表服务启动成功,看到启动成功后就可以关闭了。

输入图片说明

2、到scrapy工程目录内打开的scrapy.cfg文件,将原代码改为:

[settings]
default = future.settings

[deploy]
url = http://localhost:6800/
project = Gxrcpro

保存即可

如果是在服务器上面部署(重要,服务器跟本机设置不同),除了改bind端口为0.0.0.0外

bind端口更改地址:

anaconda3/envs/pspiders/lib/python3.6/site-packages/scrapyd

里面有个名为default_scrapyd.conf的文件,其中有一个设置是:

bind_address = 127.0.0.1

要将它改为 0.0.0.0

还需要

[settings]
default = future.settings

[deploy]
url = http://0.0.0.0:6800/
project = Gxrcpro

设置成0.0.0.0,否则会提示name or service not known

3、由于之前在本地随意目录下打开scrapyd,导致爬虫启动失败,后来经过群友[wally小馒头]的帮助才知道失败是因为虚拟环境的问题,这次需要用到pycharm。

在pycharm里面打开teminal,然后输入命令scrapyd

接着看到服务启动,通过teminal左上角的绿色+号打开新的teminal窗口,在窗口输入命令:

scrapyd-deploy  -p Gxrcpro

这里的Gxrc和Gxrcpro跟上面的cfg文件设置有关

如果收到一下信息就代表这次命令成功执行:

Packing version 1516456705
Deploying to project "Gxrcpro" in http://localhost:6800/addversion.json
Server response (200):
{"node_name": "ranbo-PC", "status": "ok", "project": "Gxrcpro", "version": "1516456705", "spiders": 1}

接着执行启动爬虫的命令:

curl http://localhost:6800/schedule.json -d project=Gxrcpro -d spider=gxrc

这里的Gxrcpro跟上面的cfg文件设置有关,而gxrc是你写代码时候填写的爬虫名字

收到如下信息:

{"node_name": "ranbo-PC", "status": "ok", "jobid": "5a6c4016fdec11e7ad5800e070785d37"}

则代表这次成功启动爬虫,可以通过localhost:6800/Jobs来查看爬虫运行基本情况。

输入图片说明

通过log可以看到爬虫的信息,如果是正在跑数据,则应该可以在log里面看到爬出来的数据;如果是出错,则会看到报错信息(之前我的环境路径不对,就是能启动,但是报错,爬虫就停止了)

输入图片说明
目录
相关文章
|
4月前
|
数据采集 存储 数据处理
Scrapy:Python网络爬虫框架的利器
在当今信息时代,网络数据已成为企业和个人获取信息的重要途径。而Python网络爬虫框架Scrapy则成为了网络爬虫工程师的必备工具。本文将介绍Scrapy的概念与实践,以及其在数据采集和处理过程中的应用。
24 1
|
2月前
|
数据采集 数据挖掘 调度
异步爬虫实践攻略:利用Python Aiohttp框架实现高效数据抓取
本文介绍了如何使用Python的Aiohttp框架构建异步爬虫,以提升数据抓取效率。异步爬虫利用异步IO和协程技术,在等待响应时执行其他任务,提高效率。Aiohttp是一个高效的异步HTTP客户端/服务器框架,适合构建此类爬虫。文中还展示了如何通过代理访问HTTPS网页的示例代码,并以爬取微信公众号文章为例,说明了实际应用中的步骤。
|
1天前
|
数据采集 NoSQL 中间件
python-scrapy框架(四)settings.py文件的用法详解实例
python-scrapy框架(四)settings.py文件的用法详解实例
7 0
|
1天前
|
存储 数据采集 数据库
python-scrapy框架(三)Pipeline文件的用法讲解
python-scrapy框架(三)Pipeline文件的用法讲解
6 0
|
1天前
|
存储 数据采集 JSON
python-scrapy框架(二)items文件夹的用法讲解
python-scrapy框架(二)items文件夹的用法讲解
10 0
|
1天前
|
数据采集 前端开发 中间件
python-scrapy框架(一)Spider文件夹的用法讲解
python-scrapy框架(一)Spider文件夹的用法讲解
8 0
|
13天前
|
数据采集 存储 中间件
【专栏】随着技术发展,Scrapy将在网络爬虫领域持续发挥关键作用
【4月更文挑战第27天】Scrapy是Python的高效爬虫框架,以其异步处理、多线程和中间件机制提升爬取效率。它的灵活性体现在可定制化组件、支持多种数据库存储及与Selenium、BeautifulSoup等工具集成。Scrapy易于扩展,允许自定义下载器和解析器。在实践中,涉及项目配置、Spider类编写、数据抓取、存储与分析。面对动态网页和反爬机制,Scrapy可通过Selenium等工具应对,但需注意法规与道德规范。随着技术发展,Scrapy将在网络爬虫领域持续发挥关键作用。
|
18天前
|
数据采集 存储 JSON
Python爬虫面试:requests、BeautifulSoup与Scrapy详解
【4月更文挑战第19天】本文聚焦于Python爬虫面试中的核心库——requests、BeautifulSoup和Scrapy。讲解了它们的常见问题、易错点及应对策略。对于requests,强调了异常处理、代理设置和请求重试;BeautifulSoup部分提到选择器使用、动态内容处理和解析效率优化;而Scrapy则关注项目架构、数据存储和分布式爬虫。通过实例代码,帮助读者深化理解并提升面试表现。
22 0
|
2月前
|
数据采集 Web App开发 搜索推荐
项目配置之道:优化Scrapy参数提升爬虫效率
项目配置之道:优化Scrapy参数提升爬虫效率
|
2月前
|
数据采集 存储 数据可视化
介绍一下常见的爬虫框架或库,如`Scrapy`。
【2月更文挑战第22天】【2月更文挑战第70篇】介绍一下常见的爬虫框架或库,如`Scrapy`。