0.参考 Scrapy 隐含 bug: 强制关闭爬虫后从 requests.queue 读取的已保存 request 数量可能有误 1.说明 Scrapy 设置 jobdir,停止爬虫后,保存文件目录结构: crawl/apps/ ├── requests.queue │   ├── active.json │   ├── p0 │   └── p1 ├── requests.seen └── spider.state requests.queue/p0 文件保存 priority=0 的未调度…
使用git stash命令保存和恢复进度 git stash 保存当前工作进度,会把暂存区和工作区的改动保存起来.执行完这个命令后,在运行git status命令,就会发现当前是一个干净的工作区,没有任何改动.使用git stash save 'message...'可以添加一些注释 git stash list 显示保存进度的列表.也就意味着,git stash命令可以多次执行. git stash pop [–index] [stash_id] git stash pop 恢复最新的进度到工…
1. stash当前修改 git stash会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录. 比如下面的中间状态,通过git stash命令推送一个新的储藏,当前的工作目录就干净了. $ git status On branch master Changes to be committed: new file: style.css Changes not staged for commit: modified: index.html $ git stash Sa…
0.参考资料 https://redis.io/topics/data-types-intro An introduction to Redis data types and abstractions http://redisdoc.com/ Redis 命令参考 1.scrapy_redis 2.redis-cli 查看数据 2.1 匹配数据库内所有 key redis-cli 127.0.0.1:6379> KEYS *1) "mycrawler_redis:dupefilter&qu…
0.背景 使用 scrapy_redis 爬虫, 忘记或错误设置 request.priority(Rule 也可以通过参数 process_request 设置 request.priority),导致提取 item 的 request 排在有序集 xxx:requests 的队尾,持续占用内存. 1.代码实现 遍历 SortedSet 的所有 item 并根据预定义字典对 data 中的 url 进行正则匹配,更新 score 并复制到临时 newkey,最后执行 rename # -*-…
小爬最近随着对python中字符串.json等理解进一步加深,发现先前我随笔中提到的data构造和传参方法略复杂,原本有更简单的方法,Mark如下. 先前小爬我使用的requests.post请求中data构造的代码如下: data_search={ 'page':1, 'rows':15, 'condition': """[\ {"column":"BPM_DEF_NAME","exp":"like&qu…
http://blog.csdn.net/jerryvon/article/details/7526147 20:50:42 一.读取图片 1.从资源(resource)读取 UIImage* image=[UIImage imageNamed:@"1.jpg"]; 2.从网络读取 NSURL *url=[NSURL URLWithString:@"http://www.sinaimg.cn/qc/photo_auto/chezhan/2012/50/00/15/80046_…
分布式爬虫原理 首先我们来看一下scrapy的单机架构:     可以看到,scrapy单机模式,通过一个scrapy引擎通过一个调度器,将Requests队列中的request请求发给下载器,进行页面的爬取. 那么多台主机协作的关键是共享一个爬取队列. 所以,单主机的爬虫架构如下图所示:     前文提到,分布式爬虫的关键是共享一个requests队列,维护该队列的主机称为master,而从机则负责数据的抓取,数据处理和数据存储,所以分布式爬虫架构如下图所示:         MasterSp…
Spiders 介绍 由一系列定义了一个网址或一组网址类如何被爬取的类组成 具体包括如何执行爬取任务并且如何从页面中提取结构化的数据. 简单来说就是帮助你爬取数据的地方 内部行为 #1.生成初始的Requests来爬取第一个URLS,并且标识一个回调函数 第一个请求定义在start_requests()方法内默认从start_urls列表中获得url地址来生成Request请求默认的回调函数是parse方法.回调函数在下载完成返回response时自动触发 #2.在回调函数中,解析respons…