Nodejs将JavaScript语言带到了服务器端。作为主要js用户的前端,获得了服务端的开发能力。但是除了用express建博客,还有什么好玩的呢?项目能做什么?为什么不只是一个网络爬虫。据说互联网上90%以上的流量都是爬虫贡献的。不知道真假,但至少证明了爬虫是一个用途广泛的东西,尤其是在电商比价领域。整体是爬虫之间的技术较量。我当然想是爬虫中的弱鸡,只实现基本功能。代码在底部。运行效果:下面简单介绍一下实现过程。首先,选择要爬取的对象。这里我们也选择门槛比较低的新闻网站cnBeta.com,因为我们每天早上都要去逛街,熟悉一下。为什么说新闻站比较简单,因为通常这类网站是不需要用户登录的,所有的爬虫请求都是很容易伪造的。爬虫的基本思路是获取页面->构建信息选择器->分析页面链接->获取相邻页面->循环第一步,对于新闻站来说,我们要获取的是新闻内容,请求到页面html代码后,只要从页面中找到content容器元素,就可以轻松获取新闻内容。下一步是获取相邻页面的地址。cnBeta新闻有上一页和下一页的链接,但是仔细看就会发现它其实是用js动态生成的。这里我们需要弄清楚js是如何获取链接的。一旦拿到链接,我们就继续获取下一条新闻的html代码,周而复始。期间,肯定不会一帆风顺。比如遇到301跳转,幸运的是,可以很容易的从请求头中找到跳转目标。找到301跳转后,应该放弃请求,重新请求跳转地址。另外,爬虫不能无限制地爬取,否则很容易被IP封禁,需要设置爬取的条数限制。最好再设置一个爬取间隔,不过这个只是学习Nodejs,不会有很多爬取,所以没必要设置爬取间隔。详细过程分析见原文地址:http://refined-x.com/2017/06/09/Nodejs%E7%88%AC%E8%99%AB%E5%AE%9E%E8%B7%B5%E5%B0%8F%E8%AE%B0/.项目源代码:Github。
