benzhan 5 năm trước cách đây
mục cha
commit
949747fb92

+ 4 - 4
code/README.md

@@ -1,7 +1,7 @@
 #code
 
 目录结构
-```
+```js
 │  app.js	//处理路由和异常捕捉
 │  common.js	//配置环境config
 │  index.js		//多进程启动
@@ -61,10 +61,10 @@
 
 ---
 #系统示意图
-![图片](/img/图1-2.jpg)
+![图片](../img/图1-2.jpg)
 
 #请求代理示意图
-![图片](/img/图1-1.jpg)
+![图片](../img/图1-1.jpg)
 
 #可视化流程示意图
-![图片](/img/图1-3.jpg)
+![图片](../img/图1-3.jpg)

BIN
img/07faa12eab01fd5fac3190e835bf837a_size1055x813_len83610.png


BIN
img/ead33b711c8bfb195ba640474805d823_size839x803_len120532.png


+ 6 - 8
install/README.md

@@ -1,21 +1,19 @@
 #install
 
 安装node相关依赖,node要求v8.0以上
-```
+```bash
 npm install
 ```
 如果pupperteer安装出现问题,请参考如下
-```
+```bash
 安装 1.15.0 版本的 puppeteer
-1.
-下载安装包
+1.下载安装包
 https://github.com/GoogleChrome/puppeteer/releases
 
 2.这里的路径根据项目地址来
 安装包解压到/data/webapps/test.spider.duowan.com/protected/node_modules目录下的puppeteer
 
-3.
-进入puppeteer
+3.进入puppeteer
 执行:
 sudo npm install -d package.json  安装好依赖模块
 sudo node install.js              安装puppeteer 服务(这个命令会自己安装chromium)
@@ -29,14 +27,14 @@ sudo node install.js              安装puppeteer 服务(这个命令会自己
 
 * 设置端口
   /protected/conf/config.${env}.inc.js	其中 ${env} 是环境,分别为 dev-开发,form-正式
-```
+```ini
 process.env.PORT = 端口号;
 ```
 
 * 配置数据库
   /protected/conf/config.${env}.inc.js
 
-```
+```js
 let dbInfo = {};
 //数据库配置
 dbInfo['Web'] = {

+ 28 - 28
run/README.md

@@ -1,28 +1,28 @@
-#run
-
-用 supervisor 守护进程来启动node爬虫进程
-```
-vim /data/services/supervisor.conf
-```
-
-举个栗子:
-```
-[program:node1]
-command=node /data/webapps/test.spider.duowan.com/protected/index.js
-process_name=WEB_test.spider.duowan.com
-directory=/data/webapps/test.spider.duowan.com/protected/
-numprocs=1
-autostart=true
-autorestart=true
-stdout_logfile=/tmp/WEB_test.spider.duowan.com.log
-
-```
-
-设置进程后,查看:
-```
-sudo supervisorctl
-```
-可以看到
-![图片](/img/图2-1.jpg)
-
-**主要启动的脚本为 index.js checkProxyPool.js crawlMaster.js crawlWorker.js**
+#run
+
+用 supervisor 守护进程来启动node爬虫进程
+```bash
+vim /data/services/supervisor.conf
+```
+
+举个栗子:
+```ini
+[program:node1]
+command=node /data/webapps/test.spider.duowan.com/protected/index.js
+process_name=WEB_test.spider.duowan.com
+directory=/data/webapps/test.spider.duowan.com/protected/
+numprocs=1
+autostart=true
+autorestart=true
+stdout_logfile=/tmp/WEB_test.spider.duowan.com.log
+
+```
+
+设置进程后,查看:
+```bash
+sudo supervisorctl
+```
+可以看到
+![图片](../img/图2-1.jpg)
+
+**主要启动的脚本为 index.js checkProxyPool.js crawlMaster.js crawlWorker.js**

+ 5 - 6
spider/README.md

@@ -2,14 +2,14 @@
 ------------
 ### IP代理池
 
-```
+```js
 此爬虫为:大象代理 http://daxiangdaili.com/
 爬虫购买是专业版:归安总管理
 爬虫接口只需要一个 订单号。
 接口地址:
 http://pvt.daxiangdaili.com/ip/?tid
 ```
-![代理的参数](http://screenshot.dwstatic.com/ojiastoreimage/07faa12eab01fd5fac3190e835bf837a_size1055x813_len83610.png)
+![代理的参数](../img/07faa12eab01fd5fac3190e835bf837a_size1055x813_len83610.png)
 
 ------------
 
@@ -21,7 +21,7 @@ http://pvt.daxiangdaili.com/ip/?tid
 ```
 
 ### 启动方式
-```shell
+```bash
 @cronta
 */2 * * * * root echo "[`date+"\%F\%T"`]`/usr/local/php/bin/php/data/webapps/admin.ouj.com/protected/bin/spider/spider_calculate.php`"  >> /tmp/spider_calculate.log &
 ```
@@ -34,7 +34,7 @@ http://pvt.daxiangdaili.com/ip/?tid
 `1、大象代理接口获取`
 `2、61.160.36.225:8000 一个 python 爬虫服务获取的免费IP`
 
-```
+```bash
 开源的爬虫脚本:
 https://github.com/qiyeboy/IPProxyPool
 
@@ -60,8 +60,7 @@ https://github.com/qiyeboy/IPProxyPool
 ------------
 
 ### 流程图
-![流程图](http://screenshot.dwstatic.com/ojiastoreimage/ead33b711c8bfb195ba640474805d823_size839x803_len120532.jpg)
-
+![流程图](../img/ead33b711c8bfb195ba640474805d823_size839x803_len120532.png)
 
 ------------
 

+ 10 - 10
use/README.md

@@ -16,7 +16,7 @@
 
 * 页面预处理,可以在爬虫获取返回html后先处理页面html,然后再接下去用选择器获取去页面数据,比如有些页面是404,此404是一张图片,如果是直接传下去给选择器,那么会报错缺少字段,如果是预处理时就判断是否404图片,那么直接返回当做抓取成功不会进入选择器。$html, $, page,_task, JTool, Tool 这几个变量可以直接使用,在爬虫内部定义如下:
 
-```
+```js
 	async _preprocess(content, page) {
         if (this.rule.data_type === 'json') {
             content = content.trim();
@@ -62,7 +62,7 @@
 
 * 选择器:查找页面元素并返回
 * 解析$el:上面选择器获取的节点元素,返回的变量用 $el 表示,和jquery操作节点元素一致
-```
+```js
 可用变量如下
 _task:任务对象,[ 'url', 'rule_id', 'task_id', 'task_key' ]
 JTool.fixColspan($table, $): 展开表格colspan,删除不合法的列
@@ -74,7 +74,7 @@ JTool.md5(str): md5加密
 ```
 * Next规则id:指定当爬取玩此规则后进入的下一个规则,可以设置上下文逻辑,比如列表页面的下一个规则应该是详情页
 * 选择 单项/多项:如果是爬取的数据是多行的则选择多项,如果是只有一项那么选择单项。这里插入的逻辑是,如果是多项的取各个列名字段相同下标的数据处理组成一条数据记录插入数据库例如:
-```
+```js
 a 列名:选择多项获取到的是一个数组 ['a', 'b', 'c']
 b 列名:选择多项获取到的是一个数组 ['d', 'e', 'f']
 
@@ -93,27 +93,27 @@ b 列名:选择多项获取到的是一个数组 ['d', 'e', 'f']
 #配置库表
 >爬虫的数据库表从名字服务器内的配置拉取到表 db_table,data_db中,这里需要注意的是,当名字服务器发布新的数据库配置后,需要重启node进程才能让爬虫的配置生效
 
-![图片](/img/图4-3.jpg)
-![图片](/img/图4-2.jpg)
+![图片](../img/图4-3.jpg)
+![图片](../img/图4-2.jpg)
 
 ---
 
 #任务
 >当规则添加后,需要配置任务,爬虫才能进行入库 
 
-![图片](/img/图4-1.jpg)
+![图片](../img/图4-1.jpg)
 * 爬虫的地址:指的爬虫的初始入口url,爬虫任务根据此url,开始爬取,如果你配置了Next规则id,那么爬虫当爬取完此规则后会自动进入下一规则,这样就实现了上下问逻辑的网页爬取
 
 当添加完任务后还可以在网页上尝试点击执行,网页返回的是此任务执行期间的打印的日志
-![图片](/img/图4-4.jpg)
-![图片](/img/图4-7.jpg)
+![图片](../img/图4-4.jpg)
+![图片](../img/图4-7.jpg)
 
 ---
 
 #调试
 >通过日志和网页运行爬取任务可以调试一个规则是否有报错
 
-![图片](/img/图4-6.jpg)
-![图片](/img/图4-5.jpg)
+![图片](../img/图4-6.jpg)
+![图片](../img/图4-5.jpg)