文档章节

pyspider爬虫学习-文档翻译-Frequently-Asked-Questions.md

sijinge
 sijinge
发布于 2017/09/03 21:13
字数 1144
阅读 37
收藏 0
Frequently Asked Questions #常见问题
==========================

Does pyspider Work with Windows? #pyspider是否与Windows兼容?
--------------------------------
是的,他应该可以,一些用户已经在Windows使用了。但是我没有windows开发环境,没有办法测试,只能给一些提示给在windows上使用pyspider的朋友:
Yes, it should, some users have made it work on Windows. But as I don't have windows development environment, I cannot test. Only some tips for users who want to use pyspider on Windows:
  #有些包需要二进制libs(例如pycurl,lxml),可能你无法通过pip安装它,Windowns二进制包可以在[http://www.lfd.uci.edu/ ~ gohlke / pythonlibs /]中找到。
- Some package needs binary libs (e.g. pycurl, lxml), that maybe you cannot install it from pip, Windowns binaries packages could be found in [http://www.lfd.uci.edu/~gohlke/pythonlibs/](http://www.lfd.uci.edu/~gohlke/pythonlibs/).
  #准备一个干净的环境与 [virtualenv](https://virtualenv.readthedocs.org/en/latest/)
- Make a clean environment with [virtualenv](https://virtualenv.readthedocs.org/en/latest/)
  #在面临崩溃的时候,试试使用32位版本的Python
- Try 32bit version of Python, especially your are facing crash issue.
  #不要使用Python 3.4.1版本
- Avoid using Python 3.4.1 ([#194](https://github.com/binux/pyspider/issues/194), [#217](https://github.com/binux/pyspider/issues/217))

Unreadable Code (乱码) Returned from Phantomjs #Phantomjs返回的结果乱码
---------------------------------------------
#Phantomjs不支持gzip,不要用“gzip”来设置“Accept-Encoding”的头文件。
Phantomjs doesn't support gzip, don't set `Accept-Encoding` header with `gzip`.


How to Delete a Project? #怎么样删除一个项目?
------------------------
设置'group'为'delete'且'status'为'STOP'并等待24小时,你可以在一个项目被删除之前维护'scheduler.DELETE_TIME'改变删除时间。
set `group` to `delete` and `status` to `STOP` then wait 24 hours. You can change the time before a project deleted via `scheduler.DELETE_TIME`.

How to Restart a Project?#怎么样重启一个项目?
-------------------------
#### Why 为什么重启?
它发生在你修改脚本和你想要用新的策略重新抓取所有内容的时候,但因为urls的[age]没有过期。调度器会放弃所有的新请求。
It happens after you modified a script, and wants to crawl everything again with new strategy. But as the [age](/apis/self.crawl/#age) of urls are not expired. Scheduler will discard all of the new requests.

#### Solution 解决方案
1. Create a new project. #创建一个新的项目
2. Using a [itag](/apis/self.crawl/#itag) within `Handler.crawl_config` to specify the version of your script.#在`Handler.crawl_config`中使用一个标签指定脚本的版本。

How to Use WebDAV Mode? #怎么样使用WebDAV模式?
-----------------------
增加`http://hostname/dav/`到你的文件系统,用你喜欢的编辑器编辑或创建脚本。
Mount `http://hostname/dav/` to your filesystem, edit or create scripts with your favourite editor.

> OSX: `mount_webdav http://hostname/dav/ /Volumes/dav`  
> Linux: Install davfs2, `mount.davfs http://hostname/dav/ /mnt/dav`  
> VIM: `vim http://hostname/dav/script_name.py`

#当您没有WebUI编辑脚本时,您需要在调试时将其更改为“WebDAV模式”。在编辑器中保存脚本后,WebUI可以加载并使用最新的脚本来调试代码。
When you are editing script without WebUI, you need to change it to `WebDAV Mode` while debugging. After you saved script in editor, WebUI can load and use latest script to debug your code.

What does the progress bar mean on the dashboard? #仪表板上进度条是什么意思?
-------------------------------------------------
#当鼠标移动到进度条上时,您可以看到注释。
When mouse move onto the progress bar, you can see the explaintions.
#对于5m,1h,1d,数字是在5m,1h,1d中触发的事件。对于所有进度条,它们是对应状态的总任务数。
For 5m, 1h, 1d the number are the events triggered in 5m, 1h, 1d. For all progress bar, they are the number of total tasks in correspond status.

只有任务在DEBUG/RUNNING状态时才显示进度条
Only the tasks in DEBUG/RUNNING status will show the progress.

我需要多少个scheduler/fetcher/processor/result_worker?或者pyspider停止工作
How many scheduler/fetcher/processor/result_worker do I need? or pyspider stop working
--------------------------------------------------------------------------------------
#您只能有一个调度器,有多少个fetcher /processor/ result_worker依赖于系统瓶颈。您可以使用仪表板上的队列状态来查看系统的瓶颈
You can have only have one scheduler, and multiple fetcher/processor/result_worker depends on the bottleneck. You can use the queue status on dashboard to view the bottleneck of the system:

![run one step](imgs/queue_status.png)
#例如,scheduler和fetcher之间的数字表示队列大小,当它达到100(默认最大队列大小)时,fetcher可能会崩溃,或者你应该考虑添加更多的fetcher。
For example, the number between scheduler and fetcher indicate the queue size of scheduler to fetchers, when it's hitting 100 (default maximum queue size), fetcher might crashed, or you should considered adding more fetchers.
#在fetcher下的数字'0+0'表示processors和schduler之间的新任务和状态包的队列大小。你可以把你的鼠标放在数字上看提示。
The number `0+0` below fetcher indicate the queue size of new tasks and status packs between processors and schduler. You can put your mouse over the numbers to see the tips.

© 著作权归作者所有

共有 人打赏支持
sijinge
粉丝 0
博文 41
码字总数 37230
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JS三元运算示例

1. topFlag=topFlag ==0?1:0; 等于 if(topFlag=00){ topFlag=1; }else if(topFlag == 1){ topFlag=0; } 2. 5>3?alert('5大'):alert('3大'); 即 if(5>3){alert('5大')}else{alert('3大')}; 注......

森火
55分钟前
0
0
利用Slf4j的MDC跟踪方法调用链

why? 一个web项目通常提供很多URL访问地址, 项目一般都是分层处理,例如Controller——>Service——>DAO。 如果想根据日志查看用户一次请求都走了哪些方法(多数是查错误)。 如果系统是多人...

杨春炼
今天
5
0
Maven介绍及安装

Maven介绍及安装 以下内容是本人早期学习时的笔记,可能比较详实繁琐,现在复习一下Maven,顺便将内容抛出来,供大家一起学习进步。 一、Maven简介 Maven是Apache旗下的一款项目管理工具,是...

星汉
今天
0
0
小程序Aes解密

主要步骤: 1、下载AES源码(JS版) 2、在小程序中新建一个公共的文件夹,把AES源码拷贝进去(注意:需要暴露接口 module.exports = CryptoJS;) 3、添加一个用于加密解密的公共JS,可取名为...

Mr_Tea伯奕
今天
0
0
Go实现文件传输(基本传输可用)

发送端 package mainimport ("fmt""os""net""io")func SendFile(path string, connect net.Conn){file, oerr :=os.Open(path)if oerr !=nil{fmt.Println("Open", oerr)......

CHONGCHEN
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部