前两天遇到一个妹子,她说不会从拉网页,我想用node作个网页抓取工具是未尝的简单,因而装x之路开始了。css
其实想法很简单,由网址获得html,由html解析css,js,image等,分别下载就好了,html
一个难点就在路径的解析上,通常的的页面是域名的,例如www.baidu.com。而有的页面是http://xxxxxx.com/c/xxxxx/xxxxxxx/index.html,路径层级比较深,忽然想到sea.js,必定对路径问题也很头疼,简单看了一下,确实里面的正则一个比一个复杂,没办法硬着头皮来吧。正好把正则的正向零宽断言看了一下,感受不是之前我想的那么难。node
另个问题是另外一个是异步多线程问题,有的页面里面必定有不少图片,难道我用单线程下载吗?明显不合适,因此要用多线程,怎么使用多线程呢,参考个人文章node多线程服务器,这里再也不赘述。而这里是多线程请求,参考cluster模块就好了。git
再一个就是node的异步编程方案,async/await函数和promise对象的使用,下载首页的时候是要阻塞的,而下载css,js,image都是同步非阻塞的。github
好了说这么多不如上代码:编程
一个简单的网页抓去工具(node版)promise
为何不弄到github上呢?为本身的网站拉点流量吗。安全
注:该连接是安全链接,不会将你的cookie发送到个人服务器,而后登陆到你的cnblog,删除你的博客,请放心使用。服务器