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. 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的目的,并且一次处理完后,再去抓后续的数据
最终实现
实现我们用来抓取花瓣网图片的爬虫
直播时间
2018年3月23日(周五)20:00
如何参加本期公开课?
获取免费参与本次公开课的名额哦~
求 知 若 饥
虚 心 似 谷
无
不仅仅做代码的搬砖工
空·
点击下方阅读原文,查看更多前端学习干货~
以上是关于Node开发websocket爬虫的经验的主要内容,如果未能解决你的问题,请参考以下文章
移动网络中 8080 或 80 端口上的 WebSocket 连接失败