精华内容
下载资源
问答
  • 通常开发好的Scrapy爬虫部署到服务器上,要不使用nohup命令,要不使用scrapyd。如果使用nohup命令的话,爬虫挂掉了,你可能还不知道,你还得上服务器上查或者做额外的邮件通知操作。如果使用scrapyd,就是部署爬虫的...

    通常开发好的Scrapy爬虫部署到服务器上,要不使用nohup命令,要不使用scrapyd。如果使用nohup命令的话,爬虫挂掉了,你可能还不知道,你还得上服务器上查或者做额外的邮件通知操作。如果使用scrapyd,就是部署爬虫的时候有点复杂,功能少了点,其他还好。

    SpiderKeeper是一款管理爬虫的软件,和scrapinghub的部署功能差不多,能多台服务器部署爬虫,定时执行爬虫,查看爬虫日志,查看爬虫执行情况等功能。
    项目地址:https://github.com/DormyMo/SpiderKeeper

    一、运行环境

    • Centos7
    • Python2.7
    • Python3.6
      注意:supervisor依赖的是Python2.7,scrapyd依赖Python3,需要自行编译安装。Python3具体安装自行百度。

    二、安装依赖

    1、supervisor pip install supervisor
    2、scrapyd pip3 install scrapyd
    3、SpiderKeeperpip3 install SpiderKeeper

    三、配置scrapyd

    1、新建scrapyd的配置文件:

    [scrapyd]
    eggs_dir    = eggs
    logs_dir    = logs
    items_dir   =
    jobs_to_keep = 5
    dbs_dir     = dbs
    max_proc    = 0
    max_proc_per_cpu = 4
    finished_to_keep = 100
    poll_interval = 5.0
    bind_address = 0.0.0.0
    http_port   = 6800
    debug       = off
    runner      = scrapyd.runner
    application = scrapyd.app.application
    launcher    = scrapyd.launcher.Launcher
    webroot     = scrapyd.website.Root
    
    [services]
    schedule.json     = scrapyd.webservice.Schedule
    cancel.json       = scrapyd.webservice.Cancel
    addversion.json   = scrapyd.webservice.AddVersion
    listprojects.json = scrapyd.webservice.ListProjects
    listversions.json = scrapyd.webservice.ListVersions
    listspiders.json  = scrapyd.webservice.ListSpiders
    delproject.json   = scrapyd.webservice.DeleteProject
    delversion.json   = scrapyd.webservice.DeleteVersion
    listjobs.json     = scrapyd.webservice.ListJobs
    daemonstatus.json = scrapyd.webservice.DaemonStatus

    四、配置supervisor

    1、创建文件夹和配置文件

    mkdir /etc/supervisor
    echo_supervisord_conf > /etc/supervisor/supervisord.conf

    2、编辑配置文件vim /etc/supervisor/supervisord.conf

    ;[include]
    ;files = relative/directory/*.ini

    改为

    [include]
    files = conf.d/*.conf

    3、新建conf.d文件夹mkdir conf.d
    4、添加scrapyd的配置文件vim scrapyd.conf

    [program:scrapyd]
    command=/usr/local/python3.5/bin/scrapyd
    directory=/opt/SpiderKeeper
    user=root
    stderr_logfile=/var/log/scrapyd.err.log
    stdout_logfile=/var/log/scrapyd.out.log

    5、添加spiderkeeper的配置文件vim spiderkeeper.conf

    [program:spiderkeeper]
    command=spiderkeeper --server=http://localhost:6800
    directory=/opt/SpiderKeeper
    user=root
    stderr_logfile=/var/log/spiderkeeper.err.log
    stdout_logfile=/var/log/spiderkeeper.out.log

    6、启动supervisor,supervisord
    7、supervisorctl reload

    五、使用

    1、登录http://localhost:5000
    2、新建project
    3、打包爬虫文件
    pip3 install scrapyd-client
    scrapyd-deploy --build-egg output.egg
    4、上传打包好的爬虫egg文件

    SpiderKeeper挺好用的,但是也是有一些bug,但不影响使用。SpiderKeeper可以识别多台服务器的scrapyd,具体多加--server就好。

    展开全文
  • Scrapyd Scrapyd是一个用于部署scrapy项目和通过HTTP API控制爬虫的服务软件。 ...Github项目地址: ...Scrapy使用教程 安装pip install scrapyd 运行scrapyd命令,访问127.0.0.1:6800可...

    Scrapyd

    Scrapyd是一个用于部署scrapy项目和通过HTTP API控制爬虫的服务软件。

    Scrapy使用教程

    • 安装pip install scrapyd
    • 运行scrapyd命令,访问127.0.0.1:6800可看到可视化界面

    Scrapy工作原理

    • 服务器端(scrapyd): 运行客户端部署的爬虫。
    • 客户端(scrapyd-client):将本地的scrapy项目打包发送到scrapyd 这个服务端
      安装 scrapyd-client: pip install scrapyd-client

    部署Scrapy项目使用教程

    • scrapy项目配置scrapy.cfg文件
      其中的username 和 password 用于在部署时验证服务器的HTTP basic authentication,须要注意的是这里的用户密码并不表示访问该项目须要验证,而是登录服务器用的。
    [settings]
    default = ScrapyProject.settings
    # demo用来标识项目, 可任意命名, 不指定时。标识名默认是default
    [deploy:demo]
    # 部署爬虫到目标服务器(url)
    url = http://localhost:6800/
    project = ScrapyProject
    username = admin
    #访问服务器所需的用户名和密码(如果不需要密码可以不写)
    password = westos123
    
    • scrapyd-deploy部署项目
    # 将本地爬虫项目部署到远程服务器端
    scrapyd-deploy demo -p ScrapyProject
    # 运行命令查看服务端状态
    curl http://localhost:6800/daemonstatus.json
    
    • 查看项目spide
      通过scrapyd-deploy -l 查看当前目录下的可以使用的部署方式(target)
    scrapy list
    scrapyd-deploy -l
    scrapyd-deploy -L xxxx
    

    Scrapyd API接口

    scrapyd的web界面比较简单,主要用于监控,所有的调度工作全部依靠接口实现.
    官方文档: http://scrapyd.readthedocs.org/en/stable/api.html

    开启爬虫 schedule

    curl http://localhost:6800/schedule.json -d project=项目名称 -d spider=爬虫名
    

    停止 cancel

    curl http://localhost:6800/cancel.json -d project=项目名称 -d job=jobID
    

    列出爬虫

    curl http://localhost:6800/listspiders.json?project=项目名称
    

    删除项目

    curl http://localhost:6800/delproject.json -d project=项目名称
    

    SpiderKeeper可视化部署

    SpdierKeeper通过配合scrpyd管理爬虫,支持一键式部署,定时采集任务,启动,暂停等一系列的操作.原理是: 对scrapyd的api进行封装,最大限度减少你跟命令行交互次数.

    依赖包安装

    • scrapy
    • scrapyd
    • SpiderKeeper

    启动SpiderKeeper

    spiderkeeper --server=http://localhost:6800
    

    启动成功后, 在浏览器访问127.0.0.1:5000,效果如下:
    在这里插入图片描述

    创建项目

    若使用scrpayd-deploy工具部署后,spiderkeeper无法自动识别出部署的项目,必须在网页中手动部署.

    • 在scrpay项目中scrapy.cfg文件中写好scrapyd服务器信息
    • 生成egg文件命令
    scrapyd-deploy --build-egg output.egg
    
    • 上传文件
      在这里插入图片描述

    运行项目

    spiderkeeper
    

    可以一次运行和定时周期运行。

    访问127.0.0.0:5000端口,输入用户名和密码(通过下图发现用户名和密码均为admin):
    在这里插入图片描述进入页面之后:

    • 创建一次性爬虫任务:

    在这里插入图片描述

    • 创建周期性爬虫任务:
      在这里插入图片描述
      设置你的爬取周期:
      在这里插入图片描述运行爬虫任务之后刷新页面即可查看结果。
    展开全文
  • scrapy可视化管理工具gerapy学习笔记

    千次阅读 2018-08-18 21:31:43
    值得注意的是需要的request版本...一个管理爬虫项目的可视化工具,把项目部署到管理的操作全部变为交互式,相当的直观和方便。但是比起spiderkeeper相比缺少了定时爬虫功能,同时对于爬虫情况的可视化也不够完善。...

    安装和使用的方法见链接https://cuiqingcai.com/4959.html
    值得注意的是需要的request版本比较高,如果本机有需要用到低版本的request,最好在虚拟机中安装

    总结

    一个管理爬虫项目的可视化工具,把项目部署到管理的操作全部变为交互式,相当的直观和方便。但是比起spiderkeeper相比缺少了定时爬虫功能,同时对于爬虫情况的可视化也不够完善。

    展开全文
  • 之前花费2个月左右的碎片时间,基于python3的pyqt5和scrapy爬虫框架、matplotlib图表,实现了一个可视化的爬虫。并通过pyinstaller 打包成exe可执行程序。希望让所有无编程基础人都可以在window 64位操作系统使用。 ...

    前言:

    之前花费2个月左右的碎片时间,基于python3的pyqt5和scrapy爬虫框架、matplotlib图表,实现了一个可视化的爬虫。并通过pyinstaller 打包成exe可执行程序。希望让所有无编程基础人都可以在window 64位操作系统使用。

    首先声明我并不是专业从事python 开发。是一个略懂后端的前端开发。很多东西都是自己摸索。有误的地方请指正。大神请飘过~,涉及技术模块整合功能较多,坑也多。预计篇幅较长,本着尽可能的详尽,不迷惑别人原则(能把一个东西的来龙去脉写的大部分人能看懂也是一项技术活,第一次搞这个当是一个锻炼吧)。有啥疑问可以给我留言,我再修正一下,希望更多的人能看懂,能有帮助。先暂定分5部分吧。内容太多,先一点一点更新吧,源码1.0版先放出来页底,不包含matplotlib实现的可视化图表。2.0版会把matplotlib加上,这个功能还有bug,不稳定。

    首先致敬CSDN大神吧,好多东西都是参考大神总结的经验代码。:

    https://blog.csdn.net/La_vie_est_belle/article/details/102539029

    https://blog.csdn.net/liqkjm/article/details/87983671

           主界面大概长这样子:

            

    Part One 概述

    1、需求目的

    设计一个可视化的百度地图api爬虫,通过搜索关键字,调取百度地图api接口,获取指定区域内的所有数据。然后将获取的数据打包成excel存到本地。放虫搞度娘。希望度娘看到不要拿刀砍我。

    2、依赖条件:

            ① 百度地图api接口文档

                  百度地图其实已经开放搜索数据访问接口。只需要按照他的api文档接口发送请求即可获取相应的数据。

                  链接:百度地图开放平台

                  接口文档:http://lbs.baidu.com/index.php?title=webapi/guide/webservice-placeapi

                   

             ② 百度地图开放平台ak

                 因为每次发get请求都需要携带申请的ak,如果没有ak就不会返回数据。所以建议自行申请的ak,我的默认ak每天只能2千次很快就爆了,就不能使用了。

                 申请链接:http://lbsyun.baidu.com/apiconsole/key?application=key

    3、运行环境:

          1、python版本:python3 不用多说

          2、依赖的包:PyQt5(可视化UI界面)、scrapy(爬虫框架)、matplotlib(可视化图表库)、openpyxl(excel相关)、numpy(matplotlib可视化图表数学计算)、pandas(excel相关)

          3、推荐IDE:pycharm

    4、整合的技术

           1、PyQt5

                  ①用到的组件: QLabel ,QLineEdit, QPushButton, QTextEdit, QTextBrowser, QHBoxLayout, QHBoxLayout ,QCheckBox

                  ②通信:PyQt5 自定义信号通信,多窗口通信。

                  ③多线程:PyQt5多线程QThread

             2、scrapy爬虫框架

                   ①爬虫框架就不细说了主要是玩这个,这个资料到处都是

             3、matplotlib

                   ①matplotlib是源于matlib的,倾向于数学计算建模,在python的包中,依赖numpy包进行数学运算。挺复杂的

                   ②柱状图,matplotlib中的bar实现柱状图的展示

                   ③animate动画,应用中为了让数据增长动态展示用到了matplotlib自带的动画功能,这块比较难搞

             4、pyinstaller打包

                    pyinstaller 专门用于打包python应用到exe可执行程序。坑也比较多。我第一次打包出来的程序直接被360当病毒给干死了,擦。第二次打包直接无限弹窗口,我了个擦。。。

             5、python 核心技术

                     1、python 多线程、多进程技术

                     2、python 队列通信技术,用于多进程,多线程通信

     

    5、实现思路

            本来想画个流程图,想想还是算了,线程太多,画出来估计快成spider 蜘蛛网了,乱糟糟的。直接说几条流程思路就对了,具体的模块具体在讲。

            ①PyQt5画出来界面后,用户在界面上操作,输入要搜索的关键字、百度的ak、通过选择组件选择要爬取数据的省份、爬取的数据存储的本地路径,还有2个队列(一个用于在界面中取scrapy的日志信息并在界面显示简称A队列,一个用于告诉scrapy要打开哪个省的数据监控中心的matplotlib柱状图汇总表简称B队列),将这些关键信息在点击页面开始爬取按钮的时候传递给爬虫。

            ②爬虫获取到①步的关键信息进行请求百度地图接口获取数据,并在管道内将爬取的数据写入传入的指定路径data.xlsx,同时将爬取的信息塞入①传递过来的A队列,让①的界面显示获取到数据,并当做日志在界面右侧的框中显示爬取信息。

            ③爬虫开启后,点击页面上的数据监控中心。获取之前选择要爬取的省份。并在B队列中通知scrapy 要打开哪个省的数据监控中心,并在scrapy中开启一个新线程,将scrapy爬取的数据传递给线程,用于计算当前省份每个市的的数据量。

            ④在③的线程中开启matplotlib绘图,将计算处理好的数据传递给matplotlib用于展示,当中包含了动画效果

    6、注意的点:

           ① 不能通过命令行开启 scrapy crawl <spider> 其实命令行是通过环境变量开启scrapy ,也就是说用户本地存在scrapy框架,要打包成通用的exe,不能保证每个用户本地都有scrapy不现实。需要通过脚本启动

           ②pyqt5有个奇怪的特性,比如开启子线程,并且把页面中的组件引用扔给子线程,在子线程中你可以拿主线程中的数据,但你不能在子线程中通过传递过来的组件引用,取修改主线程中PyQt5组件的样式。会遇到偶现卡死的bug
            ③在pyqt5中用脚本开启scrapy框架,一定要把get_project_settings()这句传递给scrapy 用于加载默认配置,如果不传递,scrapy就只知道爬数据,不管什么管道什么中间件,什么处理封装item数据。

    settings = get_project_settings()
    process = CrawlerProcess(settings)

            ⑤pyinstaller 打包pyqt的时候,如果用到多进程一定要加上这句话 multiprocessing.freeze_support(),要不然打包后窗口一个接一个往外蹦。。。

    if __name__ == '__main__':
        multiprocessing.freeze_support()
        app = QApplication(sys.argv)
        yangyang = SpiderForTanYangShi()
        yangyang.show()
        sys.exit(app.exec_())

      7、总结心得:

     1、其实写个爬虫其实对python web服务技能提高不多,但是会基本把python 基础的核心都用到了。(流程控制,对象,继承,多线程,多线程,队列通信)

     2、学习一门语言或者使用一门技术,找网上找资料无可避免的,但是你知道最痛苦的什么?你遇到个关键问题,在百度搜到10个相关解答,但每一个都没提到,或者含糊一概而过,说的不明不白。搞得一头雾水。买本书吧,打开目录,就压根没有。我擦。所以以你的上帝视角去写东西,很可能以偏概全。你感觉很简单的东西,可能正是别人迷惑的东西。所以说写的能让大部分相关的人看懂,是一件不容的事情。如果大部分人看不懂,那还不如不写,浪费别人时间给别人增加痛苦。

     3、如果有不详尽的地方,可以在下方留言共同探讨。共同进步吧。

    8、预告目录

          part one 总结一下项目的来龙去脉,需要哪些依赖条件。需要的环境。大致的思路。

          part two PyQt5界面的画图,组件布局、多窗口通信,给scrapy 传值,多线程取scrapy日志

          part three scrapy 爬取百度地图数据,并写入excel,根据B队列开启matplotlib图表

          part four matplotlib 柱状图、animate动画

          part five pyinstaller 打包成exe可执行文件

                                                                                                                                             于12月29日,明天星期一不想上班的夜晚

    后续继续更新。。。。

    parttwo 传送门:https://blog.csdn.net/qq_30613521/article/details/103758609

    1.0版代码:

    链接:https://pan.baidu.com/s/1ciSKHndU7FD8-EHpOu9sPg 
    提取码:u0mi

    说明:main.py引用了很多无效的包是为了给pyinstaller打包用

    感谢支持!

    展开全文
  • Scrapy框架(5):翻页操作、数据库存储以及简单的数据可视化一、翻页二、存数据库三、可视化1、将数据从数据库中提取出来2、绘图 一、翻页 点击href属性的值是可以直接进入第二页的,url的变化也就是“/sitehome/p...
  • Scrapy是一个流行的爬虫框架,利用Scrapyd,可以将其部署在远程服务端运行,并通过命令对爬虫进行管理,而Gerapy为我们提供了精美的UI,可以在web页面上直接点击操作,管理部署在scrapyed上的爬虫,本文介绍Scrapyd...
  • python scrapy爬虫 搜狗微信 jieba分词 数据可视化 wordcloud_plotly学习过程
  • 此项目包括网络爬虫和基本的数据可视化展示工作,主要使用了Scrapy和Django,可视化部分则使用了Pyecharts ,matplotlib 等来进行实现。前台为可视化展示模块,后台为管理员数据管理模块。 欢迎大家交流使用,如果...
  • scrapy模块的使用 pyecharts模块的使用 pymongo模块的使用 jieba模块的使用 dateuntil模块的使用 fake_useragent模块的使用 目录 python版本 爬取站点 准备工作 1.安装scrapy、pyecharts、dateutil、...
  • 1.Scrapy框架介绍 scrapy 主要介绍,spiders,engine,scheduler,downloader,Item pipeline scrapy常见命令如下: ...items写需要爬取的属性名,pipelines写一些数据流操作,写入文件,还...
  • scrapy可视化管理工具 scrapyd 什么是scrapyd? Scrapyd是一个服务,用来运行scrapy爬虫的 它允许你部署你的scrapy项目以及通过HTTP JSON的方式控制你的爬虫 scrapyd官方文档 ...如...
  • scrapy startproject projectName 1-2进入工程目录:这里一定要进入到刚才创建好的目录中 cd projectName 1-3创建爬虫文件:创建的爬虫文件会出现在之前创建好的spiders文件夹下 scrapy genspider spiderName ...
  • 数据可视化分析 工具 python3 scrapy 创建项目 scrapy安装及使用可以参考教程 scrapy ,在pycharm软件的Terminal上操作scrapy startproject scrapys 生成的目录如下: 项目创建好了,下一步分析...
  • 1.首先,分析网站,明确采集数据,创建scrapy框架环境,编写爬虫主程序; (本文为:jobspider.py文件) 2.开辟临时存储空间,将主程序爬取的数据进行临时存储(类似于字典封装); (本文为:items.py...
  • 1、scrapy-redis部分 这里主要是用分布式爬虫爬取所有的豆瓣租房信息,然后去重、存数据库(MySQL)。使用分布式的好处是爬取快,可以分布在多台机器上爬取;然后redis可以结合django使用,做到在前台点击一下按钮就...
  • scrapy

    2017-10-19 17:50:00
    目标文件夹下,按Shift+右键进控制台:(Win10则在scrapy各命令前加个python-m ) ①scrapy startprojectproject;执行两句提示,要改name(别和项目同名;另外项目名及爬虫名都不要用test、fang等有莫名意义的单词)和...
  • scrapy项目、scrapy-redis的分布式爬虫项目需要安装的组件有:1、scrapyd 服务端【运行打包后的爬虫代码】(所有的爬虫机器都要安装)2、logparser 服务端【解析爬虫日志,配合scraoydweb做实时分析和可视化呈现】...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,728
精华内容 1,491
关键字:

scrapy可视化操作