版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan
讲讲原理吧.曾经但过有人用python和c#写出来过模拟登陆csdn的.所以决定用php写一个.php当中适合做这个工作的是socket或者是curl,其实curl也是一种
Socket不用说了.太基础了.任何的header和内容都可以模拟出来的.适合高手使用.
我使用的是curl,可以很方便的实现http post操作.当然也能顺便使用cookie还有可以制定header.
想要模拟csdn的登陆.
第一步就是要找出csdn是怎样登陆的.检测一下http.
用来完成这个工作的是类似于live http header之类的工具.这些工具都有哪些还有他们具体的内容都在http://blog.csdn.net/mayongzhan 中的其中一篇文章里.
经过分析.
Csdn的登陆可以分成两步
1显示登陆页面
2 填入内容实现登陆.
在实际模拟操作中.其实模拟csdn的登陆一步就可以,但是csdn有验证码的.这个要用人眼来识别.所以必须用两步.
翻译成curl的步骤
1拿到csdn的登陆页
2分析拿到的页,存一些变量,例如cookie,还有一些单位特殊的hidden input参数.
3拿到csdn的验证码.(这里为什么要拿一次验证码呢?因为刚才拿的那个登陆页是不能看到验证码的,可以看一下刚才那个登陆页的源码,里面的验证码是相对路径,所以是肯定拿不到的).
4直接显示在页面上,然后再给出一个输入框(当然是输入验证码,这里的输出框可以用另外一个页里面写一个iframe来显示验证码)
5然后把刚才输入的内容提交到另外一个页处理.实现最终的处理.
这个过程中要使用到的curl参数是:
CURLOPT_URL
CURLOPT_HEADER
CURLOPT_NOBODY
CURLOPT_PORT
CURLOPT_POST
CURLOPT_POSTFIELDS
CURLOPT_RETURNTRANSFER
CURLOPT_FOLLOWLOCATION
CURLOPT_COOKIEJAR
CURLOPT_COOKIEFILE
CURLOPT_REFERER
关于以上内容的解释,请参考http://blog.csnd.net/mayongzhan中的文章.
整个一个curl的过程就是
$cookie_jar = tempnam('./tmp','cookie.txt');
$ch = curl_init();
$options = array(CURLOPT_URL => $url,
CURLOPT_HEADER => 1,
CURLOPT_NOBODY => 0,
CURLOPT_PORT => 80,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => ‘&abc=abcd&abcde=123’,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_COOKIEJAR => $cookie_jar,
CURLOPT_COOKIEFILE => $cookie_jar,
CURLOPT_REFERER => $url
);
curl_setopt_array($ch, $options);
$temp = curl_exec($ch);
curl_close($ch);
echo $temp;
更具体的curl的相关说明请参考http://blog.csdn.net/mayongzhan内的文章.
预祝大家模拟成功.
分享到:
相关推荐
使用CURL进行模拟登陆,在一些自动化场景中,相关脚本部署在Linux上,并且是命令行的操作方式,模拟页面的操作基本无法实现,本例使用curl模拟http请求,实现浏览器操作
PHPcurl模拟登陆教务系统源码,这里以武汉理工大学教务系统为例,可以自己在此基础上研究其他教务系统。
php curl 模块模拟登陆
curl模拟登陆rsa加密事例
PHP100视频教程88:PHP.之.CURL模拟登陆并获取数据.rar
curl是一个利用URL语法在...curl使用基本过程:第一步:使用curl_init()进行初始化,第二步:使用curl_setopt()函数进行设置选项,第三步:使用curl_exec($curl)进行执行事务,第四步:curl_close()关闭。
利用curl实现模拟登陆,可以采集需要登录的页面哦!很实用的一项技术
curl官网下载源码,mingw32-make.exe 编译,qt新建工程引入动态库,使用curl进行网络请求。
qt5使用curl实现文件下载的示例程序,详细操作请参考博客http://blog.csdn.net/xueyushenzhou/article/details/51702672#t3
php curl 自动微博登陆,使用curl,
php_curl_使用实例 curl的使用方法 curl 模拟post提交 curl 设置 UA、cookie 等 都有纤细例子
使用curl操作openstack swift使用curl操作openstack swift使用curl操作openstack swift使用curl操作openstack swift使用curl操作openstack swift使用curl操作openstack swift使用curl操作openstack swift使用curl...
php模拟登陆开心网脚本 使用curl登陆开心网
curl:小巧、快速且易扩展的模块加载器,它能处理 AMD、CommonJS Modules/1.1、CSS、HTML/text 和历史脚本。
在win10用cmake3.22与vs2019编译好的curl库,版本号为7.84.0(当下最新版,支持SLL)。库文件已经整理成了lib、include的结构,其中还内置curl...curl现在在linux与win10都是有内置的,在命令行中可以直接使用curl指令。
curl模拟post跨域提交数据 包括cookie,agent
php模拟登陆网站代码,此技术是采用CURL技术。普通的网站一般都能登陆成功
CURL 最后支持WINDOWS XP的版本是7.56.1,此资源包为SRC包,与编译BIN包,并且带有LIBSSH2与OPENSSL 1.1.1q,openssl 0.9.8, zlib1.2.12,在7.56.1以后的版本都已经不支持WINDOWS XP,因为其已经开启使用X64的编码,...
简单使用curl进行get请求并将服务器返回存进本地文件,简单使用curl进行get请求并将服务器返回存进本地文件
curl文档手册,这是专门写的一个curl、手册