Node开发websocket爬虫的经验

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node开发websocket爬虫的经验相关的知识,希望对你有一定的参考价值。

参考技术A 目前, ws 库,使用最接近前端的 Websocket 类,可以避免一些API不同产生的问题。
基本模型:

使用Chrome开发者工具即可。

一般抓包时可以看到,ws链接建立后,会进行一系列一次性的会话,一般在这里进行了握手,确定了用户信息和一些初始配置。
模拟时应注意模仿这些初始化过程。

成熟的ws链接一般带有心跳检测,每隔一定时间,服务端和客户端进行一次会话,确认客户端仍可正常回应,否则服务端立刻断开链接。
模拟时应注意模仿,否则模拟客户端不能持久存在。

周五免费直播 | Node.JS实战:爬虫抓取花瓣网图片饥人谷

免 费

Stay Hungry,Stay Foolish


本期主题

《Node.JS实战:爬虫抓取花瓣网图片


讲师

笨笨老师

  • 全栈开发工程师。曾任职于携程洋码头目前在点融从事WEB全栈开发,能熟练运用HTML5、CSS3前端开发以及Node.JS后端开发技术,对WEB移动端开发生态有自己的见解。 

  • 座右铭:人死留名,雁过留声


课程大纲

爬虫介绍

爬虫,就是后台程序(node,python,java...)做为客户端(模仿成浏览器Chrome)向其他网站请求数据(抓取数据)


页面抓取方法

  1. 服务端渲染的页面的抓取方式

  2. 前后端分离场景下前端渲染页面的抓取方式


项目中使用的模块

1. http 模块

  • http, https 介绍

  • http.createServer的用法,作为服务器服务客户端

  • http.request的用法,作为客户端向其他网站(第三方)请求服务

2. fs模块

  • fs.writeFile, 把抓取回来的数据保存到本地文本文件中,便于查找指定关键字或者语句

3. mysql模块

  • 抓取回来的数据保存到mysql数据库中,可以给自己网站应用使用


代码封装与优化

http.request抓取是一个异步请求过程,为了便于使用,我们将其封装成Promise对象, 然后配合 async, await来操作,实现异步串行化。最终封装出自己的fetch模块


反爬的应对

有些网站做了反爬处理, 针对这种情况, http.request要把尽可能的request header(cookie, refer, host, ...还有一些自定义请求头)写完整, 达到仿真chrome的目的,并且一次处理完后,再去抓后续的数据


最终实现

实现我们用来抓取花瓣网图片的爬虫


周五免费直播 | Node.JS实战:爬虫抓取花瓣网图片【饥人谷】

直播时间

2018年3月23日(周五)20:00


如何参加本期公开课?

  • 获取免费参与本次公开课的名额哦~

周五免费直播 | Node.JS实战:爬虫抓取花瓣网图片【饥人谷】

求 知 若 饥

虚 心 似 谷

周五免费直播 | Node.JS实战:爬虫抓取花瓣网图片【饥人谷】

不仅仅做代码的搬砖工

空·


点击下方阅读原文,查看更多前端学习干货~

以上是关于Node开发websocket爬虫的经验的主要内容,如果未能解决你的问题,请参考以下文章

nodejs-websocket介绍

移动网络中 8080 或 80 端口上的 WebSocket 连接失败

WebSocket 实战

tomcat 7.0支持的最大活动websocket连接数是多少

WebSocket 教程

连接到 WebSocket 时如何修复“Access-Control-Allow-Origin”错误?