吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10358|回复: 18
收起左侧

[易语言 转载] 从零开始学采集————抓取前程无忧数据之模拟登陆

  [复制链接]
kvieta丶心灵 发表于 2016-12-8 16:14
本帖最后由 kvieta丶心灵 于 2016-12-8 16:25 编辑

嗨~又见面了大家~上一节的内容不知道各位有没有认真看呢?当然,不认真看也没关系,照着代码抄就可以了,如果你想一直当菜鸟的话……
本节主要用易语言模拟登陆前程无忧,用于采集个人简历用,因为前程无忧必须登陆以后才能查看简历,只能采集免费的哦~~收费的可以私密我~
好啦~我们开始进入本节内容吧~
1.前期准备
I      用上节介绍的火狐浏览器,打开http://ehire.51job.com/MainLogin.aspx,没有账号的自己注册一个,不提供测试账号。
II     F12打开开发者工具切换到网络标签,输入用户名密码。先别急着点登陆。
III    清空所有请求数据。

如下图:
1.png
2.开始抓取登陆信息并分析

然后我们点击登陆,会出现如下图所示的样子:
2.png

哇,好多数据请求呀~到底哪些是有用的呢?
一般来说,我们点击登陆会提交账号密码给后台,会发送一个请求,基本上都是post方式,所以我们先分析post方式的请求。翻到最上边。如图可以看见一条post请求:
3.png

看文件名UserLogin,这个光看名字就知道是啥意思了,直接点它,右边弹出数据的详细信息,如下图:
4.png

然后我们点击响应或者预览,发现里面没有东西,如下图:
5.png

为啥呢……不是已经登陆了吗?那是因为我们只是提交了用户信息,服务器收到以后要返回东西给我们呀~所以我们会收到一个get方式的数据请求,刚好第二条是get,我们点击看一下,如下图:
6.png

呢……奇怪呀,为啥响应和浏览里面还是没内容呢?不急,我们继续点击下一条数据。如下图:
7.png

有东西了!!!!刚好和页面显示的一模一样,那么我们可以得出一个结论,当我们点击登陆的时候,发送用户名和密码给服务器,服务器返回两次信息给我们,第一次返回:UserLoginJump.aspx文件,然后从UserLoginJump.aspx文件下跳转到Navigate.aspx,这就是我们登陆以后的用户管理页,分析完以后我们来模拟第一条数据请求,如下图:
8.png

需要发送什么东西呢?我们可以看参数项里面的内容,如下图:
9.png

这些就是点击登陆以后提交给服务器的内容了,第一二个是用户名,第三个是密码,多次测试发现:
ctmName:“XXX”
userName:“XXX”
password:“XXX”
checkCode:“”
oldAccessKey:“7d91df74837b4ed”
langtype:“Lang=&Flag=1”
isRememberMe:“true”
sc:“dd3ac428a705daad”
ec:“336afeccd465416189c149eb737256eb”
returl:“”
checkCode、langtype、isRememberMe 、sc 、ec、returl这几个参数按默认提交就可以,那么就剩下一个oldAccessKey参数,那这个值怎么获取呢?一般来说,这些提交参数都可以在登陆页里面的网页内容找得到,但是特殊的要在js文件里面找到相应的算法得出(此处不做讲解,因为前程无忧的可以在登陆页网页内容找得到),那咱们就退出登录呗。然后右键查看网页源代码,Ctrl+F查找AccessKey,如下图:
10.png

这就是oldAccessKey的值,我们可以获取到登陆页的页面内容然后取出这个值,怎么弄?看代码:
11.png

这样我们就获取出登陆页面的网页代码,然后取出这个值,分析下网页代码,发现
23.png


这个值处于
id="hIDAccessKey" value="和" 之间(必须是页面你唯一的一串文本,不然可能获取到的不是这个值)我们用精易模块里面的文本_取出中间文本()命令取出这个值,如下图: 12.png

成功获取出来了!然后我们修改下这个子程序,让它返回这个值:好啦~然后我们回到之前,重复上面的登陆步骤,回到如图所示的内容:
13.png
14.png

我们右键这条数据,然后复制POST数据,如图:
15.png

然后我们在每一项前面加上&,并且复制到我们写好的程序里面,如下图:
16.png

这样我们模拟第一条请求就写好啦~我们测试一下……突然看官中有一位机智的小伙伴举起了双手,请问下我怎么知道他发送成功啦?喂喂喂,好奇心害死人知道不,咱就不和你一般见识,不就是想知道是不是正确的嘛……方法多得去了,我就说一种比较蠢但是很实用的方法,验证响应头是不是一样的。看代码(为什么这么写?请根据上节内容自行探讨):
17.png



然后我们对比浏览器的是不是一样的
18.png


0.0    啥情况……按道理应该是一样的呀?什么鬼啊!神经病啊!我们仔细想想是不是差点啥……程序君心里面默默的说了一句:请求头被你吃掉啦?你不给我怎么给你获取正确啊!Soga,感谢程序君的提醒,那咱们加上请求头吧……
19.png


(脾气真大)如下图:
20.png


经过测试发现只要加上Referer、Content-Type这两个就可以获取。看官们自行测试。到这里会出现两种情况,第一种是和浏览器的响应头一样,第二种是不太一样,不一样的如下图:
21.png

如果出现这种情况,说明你测试过了,并且账号已经登陆,不信你在浏览器上登陆,你会发现你的账号已经登陆了!如下图所示:
22.png


好啦,本节教程就到这里,下节我将会教大家怎么跳转到用户管理页。大家也可以自己试着模拟哦~再见~









点评

这个B装的给你99分,还一分怕你骄傲!如果能附带成品,那就完美了!  发表于 2016-12-16 21:07

免费评分

参与人数 13吾爱币 +1 热心值 +13 收起 理由
小菜逼 + 1 + 1 我很赞同!
247700432 + 1 谢谢@Thanks!
陈小姐的刘先生 + 1 我很赞同!
lin_xop + 1 用心讨论,共获提升!
吾爱丨破解 + 1 做成视频会更好
五了个五丶 + 1 我很赞同!
95535916 + 1 谢谢@Thanks!
fffire5551 + 1 热心回复!
yuuding + 1 用心讨论,共获提升!
greedysoul + 1 热心回复!
oxxo119 + 1 我很赞同!
hujianghe + 1 热心回复!
dext1231 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| kvieta丶心灵 发表于 2016-12-9 12:58
陈小姐的刘先生 发表于 2016-12-9 12:42
我想知道这个黑色的背景怎么玩出来的 还有这个彩色的字体。百度无果。  这是皮肤还是什么?

颜色配置里面弄
陈小姐的刘先生 发表于 2016-12-9 12:42
我想知道这个黑色的背景怎么玩出来的 还有这个彩色的字体。百度无果。  这是皮肤还是什么?
dext1231 发表于 2016-12-8 16:23
1952 发表于 2016-12-8 16:53
支持支持
GreyChroma 发表于 2016-12-8 16:59
收藏了,谢谢楼主贡献,免费的先看看
CHENWEI 发表于 2016-12-8 17:03
适合小白 ,顶你
dai55555 发表于 2016-12-8 17:08
谢谢分享,感谢
lan2602144404 发表于 2016-12-8 17:39
讲得不错,谢谢分享
jhnas123 发表于 2016-12-8 17:49
继续采集,学习下
qa1368 发表于 2016-12-8 17:52

继续采集
何包蛋 发表于 2016-12-8 18:00
谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 11:16

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表