nodejs抓取动态网页(Nodejs将JavaScript语言带到了,还有什么好玩的项目可以做呢?)

优采云 发布时间: 2022-03-03 16:05

  nodejs抓取动态网页(Nodejs将JavaScript语言带到了,还有什么好玩的项目可以做呢?)

  Nodejs 将 JavaScript 语言带到了服务器端。Nodejs作为js主要用户的前端,已经获得了服务器端的开发能力,但是除了用express搭建博客,还能做哪些好玩的项目呢?你为什么不只是一个网络爬虫。据说互联网上90%以上的流量是由爬虫贡献的。不知道是真是假,但至少证明了爬虫被广泛使用,尤其是在电商比价领域。我做的是爬虫中的弱鸡,只实现基本功能,先上源码。

  下面简要介绍实现过程。先选择爬取对象,这里也是门槛比较低的新闻站,因为我每天早上都要去逛街,比较熟悉,为什么新闻站比较简单,因为通常是这种类型的网站不需要用户登录,所有爬虫请求都很容易伪造。

  爬虫的基本思路是获取页面 -> 构造信息选择器 -> 分析页面链接 -> 获取相邻页面 -> 循环的第一步,对于新闻站来说,我们想要得到什么就是新闻内容,向页面请求html代码后,只要从页面中找到内容容器元素,就很容易得到新闻内容。下一步是获取相邻页面的地址。cnBeta新闻有上一页和下一页的链接,但仔细看会发现其实是用的。js是动态生成的。这里我们需要了解一下js是如何获取链接的。得到链接后,我们继续获取下一条新闻的html代码,重复循环。

  期间肯定不会一帆风顺。比如我遇到了301跳转。幸运的是,从请求头中很容易找到跳转目标。找到301跳转后,立即放弃请求,重新请求跳转地址。

  另外,爬虫不能无限爬取,否则很容易被IP屏蔽,需要设置爬取次数限制。最好再设置一个爬取间隔,不过这个只是用于学习Nodejs,不会有爬取,所以不需要再设置一个爬取间隔。

  详细分析过程见另一篇文章文章:%E7%88%AC%E8%99%AB%E5%AE%9E%E8%B7%B5%E5%B0%8F%E8%AE% B0 /。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线