700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Php CURL模拟登陆论坛并采集数据实例

Php CURL模拟登陆论坛并采集数据实例

时间:2021-09-26 01:31:41

相关推荐

Php CURL模拟登陆论坛并采集数据实例

php教程|php手册

php,curl模拟登陆,采集数据

php教程-php手册

要模拟浏览器访问网站,首选要学会观察浏览器是如何发送http报文的,以及网站服务器返回给浏览器 是什么样的内容,我推荐安装一个国外人开发的httpwatch的软件,最好搞个破解的版本,否则有些功能是使用不了的,这个软件安装完成之后是嵌入在 IE里的,启动Record,在地址栏输入网址后回车,它就会将浏览器和服务器之间的所有通讯扫描出来,让你一览无遗,关于这个软件的使用在本文不做介绍.

vip解析e4a源码,vscode 显示文件函数,批量部署ubuntu,本地访问tomcat失败,创办爬虫公司,php smtp服务器,百度seo服务套餐,模板堂网站源码,虚拟主机 模板lzw

模拟浏览器登陆应用开发,最关键的地方是突破登陆验证,CURL技术不只支持http,还支持https,区别就在多了一层SSL加密传输,如果是要登陆 https网站,php记得要支持openssl,还是先拿一个例子来分析,代码如下:

base64编码源码,vscode代码同一个颜色,ubuntu串口丢帧,tomcat 资源大小写,京东 爬虫 推广,php中的命名空间,seo常见的优化技术推广产品lzw

<?php$discuz_url = http://127.0.0.1/discuz/; //论坛地址$login_url = $discuz_url . logging.php?action=login; //登录页地址$post_fields = array();//以下两项不需要修改$post_fields[loginfield] = username;$post_fields[loginsubmit] = rue;//用户名和密码,必须填写$post_fields[username] = ianxin;$post_fields[password] = 111111;//安全提问$post_fields[questionid] = 0;$post_fields[answer] = \;//@todo验证码$post_fields[seccodeverify] = \;//获取表单FORMHASH$ch = curl_init($login_url);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$contents = curl_exec($ch);curl_close($ch);preg_match(//i, $contents, $matches);if (!emptyempty($matches)) { $formhash = $matches[1];} else { die(Not found the forumhash.);}//POST数据,获取COOKIE,cookie文件放在网站的temp目录下$cookie_file = tempnam(./temp, cookie);$ch = curl_init($login_url);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);curl_exec($ch);curl_close($ch);//取到了关键的cookie文件就可以带着cookie文件去模拟发帖,fid为论坛的栏目ID$send_url = $discuz_url . "post.php?action=newthread&fid=2";$ch = curl_init($send_url);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);$contents = curl_exec($ch);curl_close($ch);//这里的hash码和登陆窗口的hash码的正则不太一样,这里的hidden多了一个id属性preg_match(//i, $contents, $matches);if (!emptyempty($matches)) { $formhash = $matches[1];} else { die(Not found the forumhash.);}$post_data = array();//帖子标题$post_data[subject] = est2;//帖子内容$post_data[message] = est2;$post_data[ opicsubmit] = "yes";$post_data[extra] = \;//帖子标签$post_data[ ags] = est;//帖子的hash码,这个非常关键!假如缺少这个hash码,discuz会警告你来路的页面不正确$post_data[formhash] = $formhash;$ch = curl_init($send_url);curl_setopt($ch, CURLOPT_REFERER, $send_url); //伪装REFERERcurl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);$contents = curl_exec($ch);curl_close($ch);//清理cookie文件unlink($cookie_file);?>

CURL实现网站模拟登陆,代码如下:

变速器源码,Ubuntu设置中等图标,家里墙壁有爬虫,使用php下载php文件,通州seo优化lzw

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。