博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pyspider
阅读量:5078 次
发布时间:2019-06-12

本文共 1695 字,大约阅读时间需要 5 分钟。

 

Pyspider


  •  pyspider的功能:
    • 提供了方便易用的webUi系统,可视化地编写和调试爬虫
    • 提供爬取进度监控、爬取结果查看、爬虫项目管理等功能
    • 支持多种后端数据库,如mysql,mongodb、redis、sqllite等
    • 支持多种消息队列,如rabbitMq,redis等
    • 提供了优先级控制、失败重试、定时抓取等功能。
    • 对接了phantmjs,可以抓取JavaScript渲染结果
    • 支持单机和分布式部署,支持ducker部署
  • pyspider的架构:
    • pyspider的架构主要分为Scheduler(调度器)、Fetcher(抓取器)、Processer(处理器)三个部分,整个爬取过程受到Monitor(监控器)的监控,抓取的结果被Result Worker(结果处理器)处理:
      • Schdule发起任务调度,Fetcher负责抓取网页内容,Process负责解析网页内容,然后将新生的Request发给Scheduler进行调度,将生成的结果提取输出保存。

 

  • pyspider的安装:
    • 安装pycurl:
      • 链接:https://pan.baidu.com/s/1nmISakN3O9Za1gapsecKyQ  提取码:fo4n 
      • python3.6的64位安装版本

    • 安装pyspider
      • pip install pyspider
    • 若出现一下报错
    • 执行命令:pip install wsgidav==2.4.1

    • 启动pyspider
      • 控制输入:pyspider
      • 浏览器打开: http://localhost:5000/
      • 安装成功页面

      • 具体安装详情参考:https://cuiqingcai.com/5416.html
    • 创建项目:
      • 点击Create:
        • 输入项目名和起始url
      • 点击save和run就开始运行的了项目
      • 所有的文件都在C盘User下的当前用户的data文件夹目录下
      • 1 #!/usr/bin/env python 2 # -*- encoding: utf-8 -*- 3 # Created on 2019-05-15 22:47:43 4 # Project: baidu 5  6 from pyspider.libs.base_handler import * 7  8  9 class Handler(BaseHandler):10     crawl_config = {11     }12     # 配置信息,可在里面配置headers和代理等13 14     @every(minutes=24 * 60)  # 调度频率,分钟为单位15     def on_start(self):16         self.crawl('http://www.baidu.com', callback=self.index_page)17 18     @config(age=10 * 24 * 60 * 60)  #过期时间,秒为单位19     def index_page(self, response):20         for each in response.doc('a[href^="http"]').items():21             self.crawl(each.attr.href, callback=self.detail_page, validate_cert=False) # 设置不验证证书22 23     @config(priority=2)24     def detail_page(self, response):25         return {26             "url": response.url,27             "title": response.doc('title').text(),28         }  29     # 返回解析结果

转载于:https://www.cnblogs.com/ivy-blogs/p/10872819.html

你可能感兴趣的文章
redis集群如何清理前缀相同的key
查看>>
Python 集合(Set)、字典(Dictionary)
查看>>
获取元素
查看>>
proxy写监听方法,实现响应式
查看>>
第一阶段冲刺06
查看>>
十个免费的 Web 压力测试工具
查看>>
EOS生产区块:解析插件producer_plugin
查看>>
mysql重置密码
查看>>
jQuery轮 播的封装
查看>>
一天一道算法题--5.30---递归
查看>>
JS取得绝对路径
查看>>
排球积分程序(三)——模型类的设计
查看>>
python numpy sum函数用法
查看>>
php变量什么情况下加大括号{}
查看>>
linux程序设计---序
查看>>
【字符串入门专题1】hdu3613 【一个悲伤的exkmp】
查看>>
C# Linq获取两个List或数组的差集交集
查看>>
HDU 4635 Strongly connected
查看>>
ASP.NET/C#获取文章中图片的地址
查看>>
Spring MVC 入门(二)
查看>>