1.运行抓取微信号步骤
1.1 单进程启动,抓取单个微信(主要是为了阅读代码)
因为不会node.js,所以我是在windows使用NTVS调试代码的,一边学习node.js,如果测试的话,不需要启动schedule和crawl;安装好redis,我没有装hbase,不影响代码阅读
1) 启动config node run.js -i abc -a config -p 8888,按照网页添加配置
2) 启动测试node run.js -i abc -a test -l "http://www.sovxin.com/weixin_64685.html"
1.2 多进程,抓取所有微信
分析的顺序是:
首页-> 列表页->分类-> 详情页( 但是neocrawler首页上配置文档说明的顺序是: 首页-> 分类频道页-> 列表页-> 详情页)
其中首页配置:
列表页配置:
正则: "^http://www.sovxin.com/t_.*?.html$"
seed:
"seed": [
"http://www.sovxin.com/t_xiuxianyule_#.html#1#300#1",
"http://www.sovxin.com/t_jiankangshenghuo_#.html#1#300#1",
"http://www.sovxin.com/t_wenhuajiaoyu_#.html#1#300#1",
"http://www.sovxin.com/t_jiaoliu_#.html#1#300#1",
"http://www.sovxin.com/t_qiyepinpai_#.html#1#300#1",
"http://www.sovxin.com/t_mingxingmingren_#.html#1#300#1",
"http://www.sovxin.com/t_youguanbumen_#.html#1#300#1",
"http://www.sovxin.com/t_zonghe_#.html#1#300#1" ],
分类页配置:
正则: "^http://www.sovxin.com/fenlei_.*?.html$"
seed: "seed": ["http://www.sovxin.com/fenlei_zixun.html" ],
详情页:
正则: "^http://www.sovxin.com/weixin_\\d+.html$"
seed: 无
2.配置
2.1 对于案例中http://www.sovxin.com/weixin_64685.html 分析不正确,是因为下载页面时,内容下载错误
只需要将 jshandle修改为true就可以
2.2 列表页("alias": "list")配置中seed含义
"http://www.sovxin.com/t_xiuxianyule_#.html#1#300#1", 1表示最小的URL个数,300表示最多 爬取时URL递增http://www.sovxin.com/t_xiuxianyule_99.html,并存储到redis中
2.3 url_pattern是什么含义 var url_pattern = alias[a]['url_pattern'];3.变量类型含义:
crawl_info['drill_link'] ? 目前只知道是在phantomjs-bridge.js中填写的,无法调试到代码,如果在phantomjs.exe中可以调试吗? 可以显示phantomjs-bridge.js打印吗? 如果不行,就写到文件里看看
if ((new Date()).getTime() - xdriller['first_schedule'] >= xdriller['interval'] * 1000) {
scheduler.reSchedule(xdriller, index);}
queue:scheduled:all 用于缓存要下载分析的页面URL,默认100
url_pattern 有什么用? 是从这里开始寻找相关的URL吗?
crawled_finish,如何判断完成单个页面?
"drill_rules" 作用? "drill_relation"?