爬虫模拟登录的问题

2015-04-18 15:12:35 +08:00
 insaneDream

http://ww2.sinaimg.cn/large/74cae53fgw1er9qef10uvj21iu08641q.jpg
遇到这些数据如何post(校园网爬虫)

3719 次点击
所在节点    Python
16 条回复
lk09364
2015-04-18 15:17:48 +08:00
base64,不是的话分析JS 啊。
mV2GK
2015-04-18 15:30:10 +08:00
应该是base64编码后的。。。
Septembers
2015-04-18 16:53:54 +08:00
ASP.Net Web Forms
需要处理的信息/问题比较多
1. cookies
2. headers
3. 隐藏的表单域(ViewState, __EVENT*)
4. 等等
Comdex
2015-04-18 19:22:30 +08:00
正方教务系统?
zts1993
2015-04-18 19:34:58 +08:00
ViewState

先抓取页面上的ViewState使用同样的Cookie信息登陆,
p1n3
2015-04-18 19:43:10 +08:00
ASP.net web form 就是这个鸟样。。
把隐藏域里的值匹配出来,然后再post
insaneDream
2015-04-18 20:37:09 +08:00
@Comdex 嗯。。。是的
latteczy
2015-04-18 21:14:12 +08:00
直接复制,然后post就行
insaneDream
2015-04-19 00:43:34 +08:00
@latteczy 试过。。。不行。。。
ericls
2015-04-19 00:53:53 +08:00
@makubx1 你有用session的话 可以先访问表格 获取到这些值 再post
donghouhe
2015-04-19 01:06:19 +08:00
http头host有没有加?python默认不带host
pi1ot
2015-04-19 01:17:09 +08:00
末尾带等号的字母数字多半是BASE64
lincanbin
2015-04-19 01:25:02 +08:00
viewstate
asp.net里的,是form校验用的,不是不标准的base64,解码后也只是form的内容,所以没有必要解码。
抓取登录页的input里的这些数据后原样提交。
lincanbin
2015-04-19 01:25:23 +08:00
不是标准的base64
zsx
2015-04-19 10:37:00 +08:00
ASP.NET的WebForm各种神奇的内容挺多的=_=
我记得我的做法是第一次访问时匹配<input type="hidden" name="__XXXX"的隐藏域取出value,然后保存Cookie里所有数据。以后再抓取时,把页面的特殊参数填好后,直接加上这些保存好的数据作为验证即可。
Septembers
2015-04-19 11:55:00 +08:00
@zsx 我当时折腾的时候被这个差点搞疯,检查参数相当多,还要维护很多状态

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/184559

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX