使用PHPcurl模拟浏览器抓取网站信息
2023-06-13 09:15:07 时间
官方解释
curl是一个利用URL语法在命令行方式下工作的文件传输工具。curl是一个利用URL语法在命令行方式下工作的文件传输工具。
它支持很多协议:FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE以及LDAP。curl同样支持HTTPS认证,HTTPPOST方法,HTTPPUT方法,FTP上传,kerberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,下载文件断点续传,
上载文件断点续传,http代理服务器管道(proxytunneling),甚至它还支持IPv6,socks5代理服务器,通过http代理服务器上传文件到FTP服务器等等,功能十分强大。
curl讲解一
PHP中curl函数应用
简单的来说一共四步
curl_init();
curl_setopt();
curl_exec();
curl_close();
最重要的命令就是curl_setopt();
一个简单的post请求例子
index.php
<?php
$url="http://www.mytest.com/curl/login.php"; //请求的url地址
$user="zkg111";//用户名
$pass="123456";
$postdata="user_name=".$user."&password=".$pass; //请求的数据,以&符号分割
$curl=curl_init();//开启curl
curl_setopt($curl,CURLOPT_URL,$url);//设置请求地址
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); //是否输出1ortrue是不输出0 orfalse输出
curl_setopt($curl,CURLOPT_POST,1);//是否使用post方法请求
curl_setopt($curl,CURLOPT_POSTFIELDS,$postdata); //post数据
echo$data=curl_exec($curl);//执行curl操作
curl_close($curl);
?>
下面一个简单的例子,我随便打开了兄弟连的论坛,接着就模拟了一下兄弟连论坛的登陆,如果需要发帖的话原理都是一样的,转接页面,提交数据
特别注意的是cookie的保存目录windows7下面必须是在./temp目录下,开始我自己创建了一个新文件夹,发现存是对的,但是cookie读取的时候不对,为此还在好多地方
提问,但是没有回答对的,折腾了好几天该了保存文件为./temp目录下才可以的,提醒别的朋友别和我一样瞎转
<?php
$url="http://bbs.lampbrother.net/login.php";
$urls="http://bbs.lampbrother.net";
$lgt=0;
$user="XXXX";
$pass="XXXX";
$question=0;
$hideid=1;
$cookie_file = tempnam("./temp","cookie");
$postdata="forward=&jumpurl=".$urls."&step=2&lgt=".$lgt."&pwuser=".$user."&pwpwd=".$pass."&question=".$question."&answer=&hideid=".$hideid;
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$postdata);
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
$data=curl_exec($ch);
curl_close($ch);
//echo$data;
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,"http://bbs.lampbrother.net/");
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,0);
curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_file);
curl_exec($ch);
curl_close($ch);
?>
相关文章
- 人脑90%都是自监督学习,AI大模型离模拟大脑还有多远?
- 实战代理模式,模拟Mybatis
- 弱网模拟工具Clumsy(三)
- Power BI 模拟微信公众号排行榜
- 六西格玛与商业分析:蒙特卡罗模拟
- 图形学的未来:投身业界、布料仿真大牛王华民谈实时模拟的前世今生
- Java 模拟HTTP Get Post请求详解编程语言
- HTTP协议简介详解 HTTP协议发展 原理 请求方法 响应状态码 请求头 请求首部 java模拟浏览器客户端服务端编程语言
- 安装Linux U盘模拟安装简易步骤(linux模拟u盘)
- 模拟对抗浏览器的DDoS攻击
- 官方中文版《微软飞行模拟》定了!DX12也会有
- 模拟OICQ的实现思路和核心程序(二)
- python模拟登陆Tom邮箱示例分享
- Node.js模拟浏览器文件上传示例
- 通过curl模拟post和get方式提交的表单类
- java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)