文档章节

pyspider爬虫学习-文档翻译-About-Projects.md

sijinge
 sijinge
发布于 2017/08/30 22:16
字数 821
阅读 51
收藏 0
点赞 0
评论 0
About Projects 关于项目
==============
在大多数情况下,一个项目就是为一个网站编写的脚本
In most cases, a project is one script you write for one website.

项目是独立的,但是您可以将另一个项目用`from projects import other_project`的方式导入为模块
* Projects are independent, but you can import another project as a module with `from projects import other_project`
一个项目有五种状态:`TODO`, `STOP`, `CHECKING`, `DEBUG` and `RUNNING`
* A project has 5 status: `TODO`, `STOP`, `CHECKING`, `DEBUG` and `RUNNING`
    TODO  刚刚创建一个可编辑的脚本
    - `TODO` - a script is just created to be written
    STOP  如果您希望项目停止,您可以将项目标记为'STOP'
    - `STOP` - you can mark a project as `STOP` if you want it to STOP (= =).
    CHECKING 当正在运行的项目被修改时,为了防止不完整的修改,项目状态将被自动设置为“CHECKING”。
    - `CHECKING` - when a running project is modified, to prevent incomplete modification, project status will be set as `CHECKING` automatically.
    DEBUG`/`RUNNING 这两种状态对spider没有区别。但是当它第一次运行时,将它标记为‘DEBUG’,然后在检查之后将其更改为‘RUNNING’。
    - `DEBUG`/`RUNNING` - these two status have no difference to spider. But it's good to mark it as `DEBUG` when it's running the first time then change it to `RUNNING` after being checked.
爬行速度控制是通过`rate`和`burst`与令牌桶]与[token-bucket](http://en.wikipedia.org/wiki/token_bucket)算法
* The crawl rate is controlled by `rate` and `burst` with [token-bucket](http://en.wikipedia.org/wiki/Token_bucket) algorithm.
     rate 表示一秒钟有多少请求
    - `rate` - how many requests in one second
     burst 考虑到这种情况,`rate/burst = 0.1/3`,意思是每10s爬取1个网页。当所有任务都完成后,项目每分钟都在检查最后的更新列表。假设有3个新列表,pyspider将“burst”爬3个任务无需等待3×10秒,然而,第四任务需要等待10秒
    - `burst` - consider this situation, `rate/burst = 0.1/3`, it means that the spider scrawls 1 page every 10 seconds. All tasks are finished, project is checking last updated items every minute. Assume that 3 new items are found, pyspider will "burst" and crawl 3 tasks without waiting 3*10 seconds. However, the fourth task needs wait 10 seconds.
若要删除一个项目,请将“group”设置为“delete”并将状态设置为“STOP”,并等待24小时。
* To delete a project, set `group` to `delete` and status to `STOP`, wait 24 hours.

`on_finished` callback
--------------------
你可以在项目中重写“on_finished”方法,当task_queue变成0时该方法将被触发
You can override `on_finished` method in the project, the method would be triggered when the task_queue goes to 0.
例子1:当你开始一个项目去爬取一个网站的100个页面,当100个页面爬取成功或者重试失败的时候,"on_finished"回调方法将被执行
Example 1: When you start a project to crawl a website with 100 pages, the `on_finished` callback will be fired when 100 pages are successfully crawled or failed after retries.
例子2:一个项目在“auto_recrawl”任务时,“on_finished”回调将不会触发,因为当auto_recrawl任务存在时,时间队列不可能变为0.
Example 2: A project with `auto_recrawl` tasks will **NEVER** trigger the `on_finished` callback, because time queue will never become 0 when there are auto_recrawl tasks in it.
例子3:一个项目在在每次新任务提交的时候通过“@every”装饰方法将触发“on_finished”回调。
Example 3: A project with `@every` decorated method will trigger the `on_finished` callback every time when the newly submitted tasks are finished.

© 著作权归作者所有

共有 人打赏支持
sijinge
粉丝 0
博文 40
码字总数 36811
作品 0
广州
架构师
使用pyspider抓取起点中文网小说数据

简介 pyspider是国人开发的相当好用的爬虫框架。虽然网上教程不是很多,但是文档详细,操作简单,非常适合用来做爬虫练习或者实现一些抓取数据的需求。 本文就以抓取起点中文小说网的小说作品...

某杰
2017/02/22
0
0
手把手教你写网络爬虫(3):开源爬虫框架对比

原文出处:拓海 介绍 大家好!我们从今天开始学习开源爬虫框架Scrapy,如果你看过《手把手》系列的前两篇,那么今天的内容就非常容易理解了。细心的读者也许会有疑问,为什么不学出身名门的A...

拓海
04/28
0
0
pyspider + RabbitMQ 使用记 - 上

接到一个爬虫任务,项目比较巨大,原来想用 Requests 配合正则做爬虫。后来得知了 pyspider 这个神器,才知道之前的想法 low 爆了。pyspider GitHub 按照 GitHub 上的安装教程安装好以后,我...

xh4n3
2015/08/04
0
0
用PySpider搜集2017年高校招生章程

个人认为PySpider是一个十分容易上手而且功能强大的Python爬虫框架。支持多线程爬取、JS动态解析、出错重试、定时爬取等等的功能。最重要的是,它通过web提供了可操作界面,使用非常人性化。...

临江仙卜算子
05/15
0
0
Centos7-Pyspider单机版安装

安装的centos版本:CentOS-7-x86_64-DVD-1804.iso 安装的python版本:Python3.6.2 系统为最干净的系统,只安装了一个界面,界面不安装也可以 centos7自带版本为: [root@localhost ~]# pyth...

dong66
07/13
0
0
Python爬虫-pyspider框架的使用

pyspider 是一个用python实现的功能强大的网络爬虫系统,能在浏览器界面上进行脚本的编写,功能的调度和爬取结果的实时查看,后端使用常用的数据库进行爬取结果的存储,还能定时设置任务与任...

_周小董
05/15
0
0
OSChina 技术周刊第十八期 —— 2015 年 OSC 源创会行程计划

每周技术抢先看,总有你想要的! 移动开发 【软件】开源 Android ORM 框架 OpenDroid 【博客】自己动手做推送 前端开发 【软件】jQuery 全屏滚动插件 fullPage.js 服务端开发/管理 【软件】W...

OSC编辑部
2015/01/18
0
0
pyspider + RabbitMQ 使用记 - 下

首先我们需要安装 RabbitMQ,然后通过服务启动它,默认为注册到本机的5672端口。我们的爬虫和数据库写入脚本都需要连接到 RabbitMQ,一边往队列中写入数据,另一边从队列中取出数据,然后插入...

xh4n3
2015/08/06
0
6
邮箱扒头像来告诉你怎么写简单的脚本扒图

用邮箱扒头像来告诉你怎么写简单的脚本扒图 手上有几十万邮箱,本来用户系统没有做头像的东西,现在想根据这些邮箱能拿一部分用户的头像,可以直接使用gravatar的服务,不过这玩意儿不时会被...

duoduo3_69
2014/12/02
0
1
Python爬虫如何快速上手,并达到爬取大规模数据的水平

互联网的数据爆炸式的增长,而利用 Python 爬虫我们可以获取大量有价值的数据: 1.爬取数据,进行市场调研和商业分析 爬取知乎优质答案,筛选各话题下最优质的内容; 抓取房产网站买卖信息,...

技术小能手
06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Tomcat内存设置

第一步骤: 1、路径是Tomcat目录下的/bin/catalina.bat文件 打开catalina.bat文件 加入下面这句代码: set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m 2、路径是...

一梦心草
6分钟前
0
0
IDEA 及 Gradle 使用总结

IDEA 及 Gradle 使用总结 自动编译组件 目前Android开发的主流开发工具是 Eclipse 和 IDEA 目前主流的自动化打包工具时 ant,maven,gradle。 maven工具中有自己的依赖仓库维护,很多开源支持...

舒文joven
6分钟前
0
0
lombok 引入后,测试类始终找不到get,set方法。

开发环境为idea,jdk1.7,maven3.5. 网上直接搜出来的方法有: 1、在setting里安装lombok的plugins; 2、如下图,勾选enable annocation processing选项 3、升级maven plugins插件 我尝试了以...

Kidult
8分钟前
0
0
Duang,HUAWEI DevEco IDE全面升级啦

想感受全新UI带来的视觉及交互体验、 HiKey970开发板调测、 HiAI API推荐和收藏、 深度AI模型分析等新功能, 体验高清晰度和流畅度的远程AI真机调测吗? 全新的UI设计 采用最优秀的视觉及交互...

华为终端开放实验室
16分钟前
0
0
阻止事件冒泡,阻止默认事件

1.event.stopPropagation()方法 这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开, 2.event....

闫亚亚
18分钟前
0
0
网络监控工具类

package com.guorentong.learn.organ.utils;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManage......

王先森oO
18分钟前
0
0
命令

sudo nginx -s reload 重启nginx sudo lsof -i -P | grep -i "listen" 查看端口占用

那个猴子
22分钟前
0
0
用scrapy-redis爬去新浪-以及把数据存储到

需求:爬取新浪网导航页(http://news.sina.com.cn/guide/)所有下所有大类、小类、小类里的子链接,以及子链接页面的新闻内容。 准备工作: a.安装redis(windows或者linux) b.安装Redis Des...

丁典
22分钟前
0
0
PHP常用函数篇

1.为什么要使用函数? 除了内建的PHP函数,我们可以创建我们自己的函数。 函数是可以在程序中重复使用的语句块。 使代码逻辑更清晰 避免过多的全局变量 封装后避免相同逻辑重复代码,只需调用...

天地有涯风有信_大海无量不见人
23分钟前
0
0
对List分组

在日常工作中会遇到这样的情景,我们需要对List按照List中对象的一个值进行分组。比如一个Human的List,我们要根据性别分组,传统的方法是做双层循环,逐个对比,今天我要介绍一种详单简单的...

珂jack
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部