찾다

 >  Q&A  >  본문

java - 教务系统爬虫问题(尚未解决)

最近在做一个查课表的网页,思路是用httpclient模拟用户登录,抓取课表页。现在遇见一个问题纠结了很久没有解决,望大神们给点帮助。

问题是:
青果的一类教务系统,我用F12查看网络请求,登录的post请求只提交了用户名,密码和验证码都是用MD5加密后提交的,于是我伪造了所有的请求参数(包括页面input里隐藏的参数,和MD5加密后的密码和验证码),并且对比了 “我伪造后的参数列表”和“浏览器登录成功的参数列表”完全一致,最后,却总是给我验证码错误的结果。

我测试过的没有问题的操作:

  1. 验证码获取正常(其他系统含验证码的能登录成功已经保证了是同一个回话,也用断点查看了获取验证码的httpClient和登录的是一个对象,并且登录时候用到了访问验证码返回的cookie)

  2. MD5加密的密码和验证码,我对比过相同验证码、用户名、密码在浏览器里面加密过后的密文和我自己程序生成的密文一致

用java的httpclient和php的curl都模拟过登录,java的一直都是返回验证码错误,php的返回的是下图的页面
也用chrome的插件advancedRequest,Firefox的插件httprequester尝试登录过,advancedRequest的结果跟php一样,httpRequester和java的结果一样

PHPzPHPz2795일 전780

모든 응답(3)나는 대답할 것이다

  • 大家讲道理

    大家讲道理2017-04-17 17:30:47

    인증코드로 로그인하는 경우, 먼저 로그인 페이지에 접속하여 쿠키를 받은 후, 쿠키를 이용하여 인증코드에 접속해야 합니다. 마지막으로 쿠키와 함께 서버에 게시 요청을 보냅니다. 로그인이 성공했습니다.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 17:30:47

    일반적으로 소금과 함께 md5를 사용합니다

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-17 17:30:47

    글쎄, Qingguo의 시뮬레이션 로그인도 수행하고 있습니다. 검증 코드 이미지가 유효한지 확인하려면 앞서 얻은 세션 헤더 파일을 ValidateCode.aspx로 보내야 합니다.

    회신하다
    0
  • 취소회신하다