网站首页 > 开源技术 正文
爬虫的主要目的是将互联网上的网页下载到本地形成一个互联网内容的镜像备份。当我们将学号、密码及验证码提交后,浏览器首先通过与服务器进行连接,确认我们填的信息正确后,服务器会生成一个sessionId来表示登陆成功的状态,并返回给浏览器,浏览器接受到SessionId之后,作为cookies值保存在浏览器,之后每次要获取登录后页面的数据时都会提交cookies值来验证是否已经登录。因此,获取cookies值是做爬虫关键的一步,这样才可以对登录后的页面数据进行爬虫,找到自己需要的数据。
一、准备工作
1.安装superagent(一个的请求代理模块api,可处理get,post,put,delete,head请求?)
npm install?superagent
2.安装cheerio(装载已爬取的html网页,类似jQuery,方便获取网页指定数据。)?
npm install ?cheerio
3.?安装nodecr(解析验证码?)
npm install nodecr
二、分析网页cookies
首先在浏览器中输入正确的用户和密码进行登录,登录成功后服务器会发送生成的cookie值给浏览器,用来之后的浏览中验证登录身份。所以我们不仅需要利用post模拟登录,还要保存好其发送给我们的cookie值,在之后的请求中将cookie值设置在请求头中进行发送,以获取登录后的其它页面信息。可在控制台中进行查看分析。
三、分析post需要提交的字段
方法一:在同样的控制台页面下面我们可以看到我们需要post提交的字段信息。
方法二:可以查看源码,进行查找相应提交字段。
四、验证码处理
往往很多登录页面都需要验证码,我们该如何获取验证码,并对其进行解析呢?这就需要nodecr(前身为tesseract),它可以解析到验证码中的数字,本文的解析流程,首先获取登录页面的验证码并保存到本地指定目录,然后通过nodecr第三方工具进行解析得到相应验证码,之后与用户名、密码一并提交,进行模拟登录。部分截图如下:
1.保存过程
2.解析登录过程
注:(红色框中输入自己爬取网页的相应字段)
五、转码过程(可选)
有时候我们所要爬取的页面编码为GBK格式则不能正常显示,这时需要进行转码处理。
六、登录成功后,这时就该cheerio上场了,cheerio操作类似jquery的用法,先将得到的页面用cheerio进行转载,之后对相应的数据进行处理,取得自己想要的数据。
模拟登录是最基础也最重要的部分,登录之后,我们便可以运用自己的知识对网页进行处理了,比如课表的爬虫,成绩的爬虫等等,你会觉的越来越有意思了。
完整代码见:https://github.com/luhongchun/blog/tree/master/node_login
猜你喜欢
- 2024-10-21 霸榜掘金!轻量级请求策略库 alova 出炉!
- 2024-10-21 对于现代 Web 应用除了美观要求之外,对产品体验度要求高
- 2024-10-21 5 个顶级的 JavaScript Ajax 组件和库
- 2024-10-21 用 async 模块控制并发数(async await并发)
- 2024-10-21 package-lock.json的作用?(package lock.json)
- 2024-10-21 为什么 JS 开发者更喜欢 Axios 而不是 Fetch?
- 2024-10-21 Node.js爬虫实战 - 爬你喜欢的(node爬取数据)
- 2024-10-21 IMT星际云每周资讯-20190111(星际云官网)
- 2024-10-21 nodejs,express,koa爬虫实战(node网络爬虫)
- 2024-10-21 nodeJs-爬虫初体验(nodejs爬取数据)
你 发表评论:
欢迎- 最近发表
-
- 6月游戏推荐(二)(6月份新出的游戏)
- 37【源码】数据可视化:基于 Echarts + Python 动态实时大屏
- Kubernetes Kube-Proxy 组件 IPVS 模式工作原理及常用故障排查
- 《茶余饭后顶级英文歌曲精选》(茶余饭后的经典句子)
- rainx和MediaTek携手推出101产品生态,为5G FWA提供创新
- KAPITAL 推出蓝染风格 Aloha Shirt 系列
- 欧美经典怀旧歌曲Free loop-管不住的音符
- Mac 下php5.3-7.0的二进制包 ── PHP-OS
- 如何把一个Python应用程序装进Docker
- 为何推荐 JsonTree.js 做 JSON 可视化?
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)