node模拟登陆有人有实例吗?
发布于 10 年前 作者 bigMuffin 6203 次浏览 最后一次编辑是 8 年前 来自 问答

想抓取一个网站的数据,但是网站要登陆。登陆内容有 用户名+密码+验证码(ashx) 现在我会请求网页数据了。但是那个页面需要登录。http://vip.311st.com/login.aspx就是这个网站 我想分析游乐场里面的页面数据。就是模拟登陆不知道怎么弄。想就问问大家

24 回复

在线等。

@TimothyJin 需要登陆怎么破?

下载fiddler,跟踪一下登录。看看提交到哪个地址之类的吧。

@coolicer 我先试试,谢谢

@coolicer 居然就是这个地址http://vip.311st.com/login.aspx

@bigMuffin 你还有一个难点,就是要知道图片验证码。

@coolicer 是啊。那个可以从网页上直接显示不?然后我自己输入?可行吗?

@bigMuffin 如果是人的话那肯定可以啊。

@coolicer 这边那个页面显示出来了。但是就是乱码。我把form和验证码图片加上 http://vip.311st.com/这个域名可以登录。但是保存不了登录状态。不知道怎么回事?

@bigMuffin 登录后会产生session cookie,你没有

在浏览器里面登陆之后,把 cookie 拿出来用不就好了吗? 反正写的是爬虫,这么干方便快捷

@coolicer 这一步求指教。如何取得session cookie?

@bigMuffin 楼上说叫你直接拿来用,因为你登录之后已经生成一条cookie

cookie 方便快捷 刚看了下那个验证码, ocr 处理比较容易啊

@zhouseahe 求大神赐教。

var http = require(‘http’); var request = require(‘request’); http.createServer(function(req, res) { /* GET req page. */ request ({ uri: ‘http://www.geibi.com/index.aspx’, //构建请求 encoding: null, //不转码 headers: { Cookie: ‘0u4qj3wphktrnzrcw3kknn3y’ //这里是关键,设置Cookie为之前请求到的以Cookie形式呈现的SessionID } }, function(err, res, body) { //获取响应即可 if (err) { console.log(‘Server Error’+err.message); } }); }).listen(3002, ‘127.0.0.1’); console.log(‘服务运行在http//:127.0.0.1:3002/’);

但是不行。我不知道为什么。

上面的是我在网上找的代码。因为我初学node,很多都不是很懂。所以想请教大家。

用caspter.js。

@bigMuffin 这个代码应该是可以的,但是你要读图片,就会麻烦点, 你直接手动登录,然后把cookie 写到文件,应用抓数据的时候再去文件读cookie

@zhouseahe 呃。我还是先学好node再说吧。这个我已经放弃了。谢谢大家了。

回到顶部