大象笔记
git
## 对远端分支进行回滚
git pull origin master
git reset --hard
git push origin master --force
参考 [git 怎样删除远程仓库的某次错误提交?
代理池
## 为何要使用代理 IP
很多时候,目标网站对单 IP 的请求有频率限制,如果要最大限度的发挥单机采集效率,就不得不使用代理 IP。甚至是大量的代理 IP。
## 使用代理的逻辑
- 建立一个数据表用于存储代理 IP。主要目
scrapy
对于很多简单页面,厌倦了一行一行自己写爬虫,所以尝试一下 Scrapy。重点考察
- 开发效率
- 异常处理
- 防封机制
使用教程参考官网 [scrapy.org](http://scrapy.org), 写得很细致。
爬虫
## 不错的参考资料
- [从第三方数据到第一方数据的技术变革](http://www.infoq.com/cn/articles/data-third-to-first)
VIM Snippets
> snippet - n.(尤指讲话或文字的)小片,片段,零星的话
如果让我只保留一个 VIM 插件的话,那么这个插件就是 ultisnips.
有了 ultisnips,可以方便的自己编写新语言的自动补全规则,再也不需要在 .v
bower
## why bower
* js, css, html 等前端的包管理工具
* 编写自己的工具集,提交到 github,通过 bower 进行管理
## 安装
$ npm install -g bower
Python 包管理
## PyPI
[PyPI](https://pypi.python.org/pypi) - the Python Package Index
## 参考文档
第一次提交参考了 [How to submit a package
包管理
## 为何要进行包管理
最近(公元2015年11月27日), 前端社区火爆。
node, react 等发展速度超乎想象,除了社区基因外,我总觉得这要归功于前端更先进的包管理模式。
GitHub 彻底改变了社区生态,把独立的功
使用 Redis 作为任务队列
## 需求
最近在写爬虫,用来爬取美区亚马逊的商品信息。为了方便地做水平扩展,需要用到任务队列。
需求其实很简单,就是将 MySQL 中未处理的商品 ID, 推送到任务队列中。再由 N 个 worker 拉取任务,进行处理。
使用 MySQL 实现任务队列
首先需要声明的是,这个标题是有问题的。因为用 MySQL 实现队列并不是一个好的选择。
之所以使用 MySQL 是因为想尝试一下。
## 在 Google 之前,先实践一下自己的思路
MySQL table 结构
`