• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

使用 模拟登陆 抓取学校系统的晨跑数据,失败了,请问大神

php 搞代码 3年前 (2022-01-24) 10次浏览 已收录 0个评论

使用 模拟登陆 抓取学校系统的晨跑数据,失败了,请教大神
最近在学习php的模拟登陆,就想拿学校的体育教学系统实践一下,但失败了。请教大神,我的代码到底错在了哪?

【一些信息】
登录系统的地址:http://210.35.75.247:8080/student/studentFrame.jsp
(用户名:1101001,密码:1101001,角色:学生)
查晨跑的地址:http://210.35.75.247:8080/student/queryCheckInfo.jsp

【代码如下】

<?php  <br />$cookie_file = tempnam('./temp','cookie');<br />$login_url = 'http://210.35.75.247:8080/student/studentFrame.jsp';<br />$post_fields  = 'userName=1101001&passwd=1101001';<br /><br />$ch = curl_init($login_url);<br />curl_setopt($ch, CURLOPT_HEADER, 0);<br />curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />curl_setopt($ch, CURLOPT_POST, 1);<br />curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);<br />curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);<br />curl_exec($ch);<br />curl_close($ch);<br /><br />$url = 'http://210.35.75.247:8080/student/queryCheckInfo.jsp';<br />$ch = curl_init($url);<br />curl_setopt($ch, CURLOPT_HEADER, 0);<br />curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);<br />curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);<br />curl_exec($ch);<br />curl_close($ch);<br />?>

【第一次发帖,拜谢!】
——解决方案——————–
别客气我也只是菜鸟,一起研究学习下
首先声明几个名词…
框架页 student/studentFrame.jsp 表单提交的action地址
学生信息页 student/studentInfo.jsp 是框架页的ifra@本文来*源gaodai#ma#com搞*!代#%^码$网*me自动加载的src
晨跑成绩 student/queryCheckInfo.jsp
用firebug跟踪了一下登陆流程,发现框架页的iframe加载的学生信息后面带了参数?username=…&passwd=….,猜测真正的登陆流程应该在学生信息页。我把登陆失败的页面不echo保存在文件中看了下,框架页的html和登陆成功几乎相同,只是多了一段跳转js。利用学生信息页的JSESSIONID登陆成功了,和框架页的对比下,不一样。蛋疼的管理系统

<br /><?php<br /><br />$url1 = 'http://210.35.75.247:8080/student/studentInfo.jsp';<br />$url2 = 'http://210.35.75.247:8080/student/queryCheckInfo.jsp';<br />$name = '1101001';<br />$pw = '1101001';<br />$params = array(<br />    'userName' => $name,<br />    'passwd' => $pw,<br />);<br /><br />$ch = curl_init();<br />curl_setopt($ch, CURLOPT_URL, $url1 . '?' . http_build_query($params));<br />curl_setopt($ch, CURLOPT_HEADER, 1);<br />curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />$con = curl_exec($ch);<br /><br />preg_match('/Set-Cookie: (.*);/Us', $con, $match);<br />$cookie = $match[1];<br /><br />curl_setopt($ch, CURLOPT_URL, $url2);<br />curl_setopt($ch, CURLOPT_HEADER, 0);<br />curl_setopt($ch, CURLOPT_COOKIE, $cookie);<br />$con = curl_exec($ch);<br />curl_close($ch);<br /><br />echo $con;<br /><br />

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用 模拟登陆 抓取学校系统的晨跑数据,失败了,请问大神
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址