热搜:NVER node 开发 php

PHP curl 抓包问题

2024-08-17 17:00:01
PHP curl 抓包问题

用curl抓取网页书据,成绩,课表都是用这种方法抓取的,但是抓取就不行了,报500错误

这是用httpwatch抓包工具抓取的页面,cookie正确拿到

这是要抓取的界面,数据通过post传输

							
学号:
密码:
<?php if(isset($_POST["login"])) { $login = $_POST["user"]; $password = $_POST["password"]; $url = "http://202.117.64.25/loginAction.do"; $fields = "dllx=dldl&zjh=201224080126&mm=201224080126"; $cookie1 = "D:\wamp\www\cookielogin.txt"; $cookie2 = "D:\wamp\www\cookie.txt"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $result = curl_exec($ch); curl_close($ch); $url = "http://202.117.64.25/xszxcxAction.do?oper=tjcx"; $fields = "zxxnxq=2014-2015-1-1&zxXaq=0&zxJxl=0011&zxZc=1&zxJc=1%2C2&zxxq=1&pageSize=20&page=1¤tPage=1&pageNo=1"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $result = curl_exec($ch); echo $result;}?>

PHP代码

报错界面


回复讨论(解决方案)

第一:带上CURLOPT_REFERER试试,对方是不是有可能判断了页面来源
第二:对方的登陆页是否有隐藏参数,如果有的话需要先访问登陆页获取隐藏值再提交
第三:没看见你什么地方提交了登录的账号和密码,就是自己这边POST过来的账号和密码

$url = "http://202.117.64.25/loginAction.do";
$fields = "dllx=dldl&zjh=201224080126&mm=201224080126";
这是提交账户和密码!
CURLOPT_REFERER 要加什么?

找到两个隐藏参数,但是貌似没什么用

第一:带上CURLOPT_REFERER试试,对方是不是有可能判断了页面来源
第二:对方的登陆页是否有隐藏参数,如果有的话需要先访问登陆页获取隐藏值再提交
第三:没看见你什么地方提交了登录的账号和密码,就是自己这边POST过来的账号和密码


$url = "http://202.117.64.25/loginAction.do";
$fields = "dllx=dldl&zjh=201224080126&mm=201224080126";
这是提交账户和密码!
CURLOPT_REFERER 要加什么?

找到两个隐藏参数,但是貌似没什么用

帮你测试了一下,登录是没问题的,已经登录成功,主要问题出在你第二次请求的参数上,检查一下参数,抓取你第二个页面上所有的参数下来,另外JAVA的这个报错不是很懂!

帮你测试了一下,登录是没问题的,已经登录成功,主要问题出在你第二次请求的参数上,检查一下参数,抓取你第二个页面上所有的参数下来,另外JAVA的这个报错不是很懂!


你抓取成功了吗?

大家帮忙看看,怎么回事???

你的流程和代码都有问题!正确的流程应该是:
1、访问 http://202.117.64.25/
获取 cookie。因为他的 sessionid 在这个页面发出的
2、访问 http://202.117.64.25/loginAction.do 并发送 post 表单数据
3、第2步返回的是一个框架页,你得根据需要进入某个框架
比如访问 http://202.117.64.25/menu/s_top.jsp 可以得到已登录信息:欢迎光临 黄小龙
测试代码

&lt;?phpinclude 'curl/curl_get.php';$url = 'http://202.117.64.25/';curl_get($url);$url = "http://202.117.64.25/loginAction.do";$d = 'dllx=dldl&zjh=201224080126&mm=201224080126';curl_get($url, $d);echo curl_get('http://202.117.64.25/menu/s_top.jsp');echo curl_get('http://202.117.64.25/menu/mainFrame.jsp');echo curl_get('http://202.117.64.25/xsxxviewAction.do');</pre>  <br /> curl_get.php  <pre class="sycode" name="code">&lt;?phpfunction curl_get($durl, $data=array()) {  $cookiejar = realpath('cookie.txt');  $t = parse_url($durl);  $ch = curl_init();  curl_setopt($ch, CURLOPT_URL,$durl);  curl_setopt($ch, CURLOPT_TIMEOUT,5);  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);  curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);  curl_setopt($ch, CURLOPT_REFERER, "http://$t[host]/");  curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiejar);  curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar);  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  curl_setopt($ch, CURLOPT_ENCODING, 1); //gzip 解码  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);  if($data) {    curl_setopt($ch, CURLOPT_POST, 1);    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);  }  $r = curl_exec($ch);  curl_close($ch);  return $r;}</pre> </p> <p class="sougouAnswer">  <p class="yy">   你的流程和代码都有问题!正确的流程应该是:   <br /> 1、访问 http://202.117.64.25/   <br /> 获取 cookie。因为他的 sessionid 在这个页面发出的   <br /> 2、访问 http://202.117.64.25/loginAction.do 并发送 post 表单数据   <br /> 3、第2步返回的是一个框架页,你得根据需要进入某个框架   <br /> 比如访问 http://202.117.64.25/menu/s_top.jsp 可以得到已登录信息:欢迎光临 黄小龙   <br /> 测试代码   <pre class="sycode" name="code"><xmp>&lt;?phpinclude 'curl/curl_get.php';$url = 'http://202.117.64.25/';curl_get($url);$url = "http://202.117.64.25/loginAction.do";$d = 'dllx=dldl&zjh=201224080126&mm=201224080126';curl_get($url, $d);echo curl_get('http://202.117.64.25/menu/s_top.jsp');echo curl_get('http://202.117.64.25/menu/mainFrame.jsp');echo curl_get('http://202.117.64.25/xsxxviewAction.do');</pre>   <br /> curl_get.php   <pre class="sycode" name="code">&lt;?phpfunction curl_get($durl, $data=array()) {  $cookiejar = realpath('cookie.txt');  $t = parse_url($durl);  $ch = curl_init();  curl_setopt($ch, CURLOPT_URL,$durl);  curl_setopt($ch, CURLOPT_TIMEOUT,5);  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);  curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);  curl_setopt($ch, CURLOPT_REFERER, "http://$t[host]/");  curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiejar);  curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar);  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  curl_setopt($ch, CURLOPT_ENCODING, 1); //gzip 解码  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);  if($data) {    curl_setopt($ch, CURLOPT_POST, 1);    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);  }  $r = curl_exec($ch);  curl_close($ch);  return $r;}</pre>  </p>  <br /> 非常感谢你,成功了,但是还是不知道为什么?  <br /> 这是我最终代码  <br />  <pre class="sycode" name="code">&lt;?phpinclude './curl/curl_get.php';$url = "http://202.117.64.25/loginAction.do";$d = 'dllx=dldl&zjh=201224080126&mm=201224080126';curl_get($url, $d);echo curl_get('http://202.117.64.25/xszxcxAction.do?oper=tjcx', 'zxxnxq=2014-2015-1-1&zxXaq=0&zxJxl=0011&zxZc=11&zxJc=2&zxxq=2&pageSize=20&page=1&currentPage=1&pageNo=');?></pre> </p> </article >
      <div class="mimiwuqi pagebar-2">  </div>
      <div class="mimiwuqi art-tags">  </div>
      <div class="mimiwuqi art-copyright">
        <p>本文是由用户编写整理,所有内容的版权归原作者所有。如果侵犯了您的权益,请联系我删除<br></p>
      </div>
    </div>
    <div class="mimiwuqi prev-next">       <p class="mimiwuqi art-prev"> <a href="https://frontend.mimiwuqi.com/qianduan/402046.html" rel="prev"><span>上一篇</span>
        yii框架中验证码为什么总是验证错误        </a> </p>
                        <p class="mimiwuqi art-next"> <a href="https://frontend.mimiwuqi.com/qianduan/442913.html" rel="next"><span>下一篇</span>
        PHP写的API如何防止拒绝服务攻击?        </a> </p>
                </div>
  </div>
  <div class="mimiwuqi col-right r">
      <div class="mimiwuqi widget widgetModule widgetHotPost">
        <div class="mimiwuqi com-tit">
          <h4 class="mimiwuqi title-2">相关推荐</h4>
        </div>
        <ul class="mimiwuqi mod-main mod-post">
                     <li> <a href="https://frontend.mimiwuqi.com/qianduan/402047.html" target="_blank" title="PHP curl 抓包问题" class="mimiwuqi clearfix">
            <div>
              PHP curl 抓包问题            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402046.html" target="_blank" title="yii框架中验证码为什么总是验证错误" class="mimiwuqi clearfix">
            <div>
              yii框架中验证码为什么总是验证错误            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402045.html" target="_blank" title="php redis操作详解" class="mimiwuqi clearfix">
            <div>
              php redis操作详解            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402044.html" target="_blank" title="PHP采集利器:根据开始字符串和结束字符串截取需要的采集内容数据" class="mimiwuqi clearfix">
            <div>
              PHP采集利器:根据开始字符串和结束字符串截取需要的采集内容数据            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402043.html" target="_blank" title="这个网站的前台你们还有参考?" class="mimiwuqi clearfix">
            <div>
              这个网站的前台你们还有参考?            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402042.html" target="_blank" title="不是new出来的对象也能用-&gt;取值吗" class="mimiwuqi clearfix">
            <div>
              不是new出来的对象也能用-&gt;取值吗            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402041.html" target="_blank" title="字符串就是数组吗" class="mimiwuqi clearfix">
            <div>
              字符串就是数组吗            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402040.html" target="_blank" title="php ci框架中加载css和js文件失败的原因及解决方法" class="mimiwuqi clearfix">
            <div>
              php ci框架中加载css和js文件失败的原因及解决方法            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402039.html" target="_blank" title="想要目录文件中英文对照功能" class="mimiwuqi clearfix">
            <div>
              想要目录文件中英文对照功能            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402038.html" target="_blank" title="thinkphp 日志记录没有文件生成" class="mimiwuqi clearfix">
            <div>
              thinkphp 日志记录没有文件生成            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402037.html" target="_blank" title="centOS6 php 编译 imap 模块" class="mimiwuqi clearfix">
            <div>
              centOS6 php 编译 imap 模块            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402036.html" target="_blank" title="php里的str_replace函数可以同时替换3处吗?" class="mimiwuqi clearfix">
            <div>
              php里的str_replace函数可以同时替换3处吗?            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402035.html" target="_blank" title="【】zend studio使用xdebug调试,一直停在57%进行不下去" class="mimiwuqi clearfix">
            <div>
              【】zend studio使用xdebug调试,一直停在57%进行不下去            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402034.html" target="_blank" title="怎么调试微信 开发这模式的 怎么看用户发过来的xml数据" class="mimiwuqi clearfix">
            <div>
              怎么调试微信 开发这模式的 怎么看用户发过来的xml数据            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402033.html" target="_blank" title="这三个东西如何搭配使用呢" class="mimiwuqi clearfix">
            <div>
              这三个东西如何搭配使用呢            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402032.html" target="_blank" title="EditPlus下载及配置PHP调试环境" class="mimiwuqi clearfix">
            <div>
              EditPlus下载及配置PHP调试环境            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402031.html" target="_blank" title="php简单的连接数据库" class="mimiwuqi clearfix">
            <div>
              php简单的连接数据库            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402030.html" target="_blank" title="MVC中的M是否就是数据库操作类" class="mimiwuqi clearfix">
            <div>
              MVC中的M是否就是数据库操作类            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402029.html" target="_blank" title="PHP 使用 stream_get_meta_date ,stream_get_contents 获取网页内容" class="mimiwuqi clearfix">
            <div>
              PHP 使用 stream_get_meta_date ,stream_get_contents 获取网页内容            </div>
            </a> </li>
                    <li> <a href="https://frontend.mimiwuqi.com/qianduan/402028.html" target="_blank" title="PHP上传文件(学习)" class="mimiwuqi clearfix">
            <div>
              PHP上传文件(学习)            </div>
            </a> </li>
                  </ul>
      </div>
    </div>
  </div>
</div>
<footer class="footer">
  <div class="footer-bottom">
      <div class="container">
        <div class="footer-copyright">Copyright © 2009 mimiwuqi.com<span>・ </span><a rel="nofollow" target="__blank" href="https://beian.miit.gov.cn">晋ICP备2021011283号</a>  <script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?7b19f396c9feef68fe5082cad0b0eeff";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>
</div>
      </div>
  </div>
  <div class="foot-link">
    <img rel="nofollow" src="https://www.mimiwuqi.com/skin/truste.png" alt="TRUSTe Privacy Certification">	
    <img rel="nofollow" src="https://www.mimiwuqi.com/skin/icon3.png" alt="可信网站">
    <img rel="nofollow" src="https://www.mimiwuqi.com/skin/f1ee261b96ae71e845efba398efeca02.png" alt="网站安全">
    <img rel="nofollow" src="https://www.mimiwuqi.com/skin/a6ef792fec0a3f4f370cb8d8c6d11134.png" alt="服务时间">
  </div>
<div class="rollbar">
  <div class="rollbar-item"><a rel="nofollow" target="_blank" title="举报反馈留言"  href="https://www.mimiwuqi.com/e/tool/gbook/?bid=2"><i class="iconfont icon-fankui"></i>反馈</a></div>
  <div class="rollbar-item tap-qq" etap="tap-qq"><a rel="nofollow" target="_blank" title="QQ咨询" href="tencent://message/?uin=431571451&Site=qq&Menu=yes"><i class="iconfont icon-qq"></i></a></div>
  <div class="rollbar-item tap-weixin" etap="tap-weixin" data-id="0" title="关注微信"><i class="iconfont icon-weixin"></i><img src="/skin/mimiwuqi/images/weixin.png" alt="微信联系"></div>
  <div class="rollbar-item to_full" etap="to_full" title="全屏页面"><i class="iconfont icon-full"></i></div>
  <div class="rollbar-item to_top" etap="to_top" title="返回顶部"><i class="iconfont icon-shang"></i></div>
</div>  <div id="loginbox"></div>
  <script type="text/javascript" src="/skin/images/login.js"></script>  
</footer>
 

<div class="mimiwuqi m-mask"></div>
<script src="https://frontend.mimiwuqi.com/skin/mimiwuqi/js/jquery.fancybox.min.js"  type="text/javascript"></script>
<link rel="stylesheet" href="https://frontend.mimiwuqi.com/skin/mimiwuqi/css/jquery.fancybox.min.css">

<script>
$(function () {
        $('.content').find('img').each(function () {
                var _this = $(this);
                var _src = _this.attr("src");
                var _alt = 'PHP curl 抓包问题';
                _this.wrap('<a data-fancybox="images" href="' + _src + '" data-caption="' + _alt + '"></a>');
				$(this).attr('title','' + _alt + '');
        })
})
const preElements = document.querySelectorAll('pre');
		preElements.forEach((pre, index) => {
			const code = document.createElement('code');
			code.textContent = pre.textContent;
			pre.textContent = '';
			pre.appendChild(code);
			const codebutton = document.createElement('button');
			codebutton.textContent = '复制';
			codebutton.className = 'hljs-button';
			pre.appendChild(codebutton);
			codebutton.addEventListener('click', function () {
				navigator.clipboard.writeText(code.textContent).then(() => {
					codebutton.textContent = '已复制';
					setTimeout(() => {
						codebutton.textContent = '复制';
					}, 2000);
				})
					.catch(err => {
						console.error('无法复制文本: ', err);

					});
			});
		});
</script>
</body>
</html>