想抓取一个网站的数据,但是网站要登陆。登陆内容有 用户名+密码+验证码(ashx) 现在我会请求网页数据了。但是那个页面需要登录。http://vip.311st.com/login.aspx就是这个网站 我想分析游乐场里面的页面数据。就是模拟登陆不知道怎么弄。想就问问大家
在线等。
phantomjs
@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,很多都不是很懂。所以想请教大家。
这个不擅长
@captainblue2013 感谢帮顶。
用caspter.js。
@bigMuffin 这个代码应该是可以的,但是你要读图片,就会麻烦点, 你直接手动登录,然后把cookie 写到文件,应用抓数据的时候再去文件读cookie
@zhouseahe 呃。我还是先学好node再说吧。这个我已经放弃了。谢谢大家了。