php 模拟登陆(不带验证码)采集数据

这里模拟表单登陆窗口

提交代码部分

1,生成session_id保存到 cookie

$login_url = 'http://www.96net.com.cn/Login.php';
$cookie_file = dirname(__FILE__)."/pic.cookie";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $login_url);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);

curl_exec($ch);

curl_close($ch);

2,处理提交的登陆的数据

if($_POST['acti']=='tj'){


$userid=$_POST['userid'];
$password=$_POST['password'];

$_post_url = 'http://www.96net.com.cn/login.php?action=Login'; //登录表单提交地址

$post = "userid=$userid&password=$password";

$ch12 = curl_init();

curl_setopt($ch12, CURLOPT_URL, $_post_url);

curl_setopt($ch12, CURLOPT_HEADER, false);

curl_setopt($ch12, CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch12, CURLOPT_POSTFIELDS, $post); //提交方式为post

curl_setopt($ch12, CURLOPT_COOKIEFILE, $cookie_file);

curl_exec($ch12);

curl_close($ch12);

//以上表示登陆成功
//以下开始采集数据

$data_url19 = "http://www.96net.com.cn/xxxxxxx.php?id=10";     //数据所在地址

$ch19 = curl_init();

curl_setopt($ch19, CURLOPT_URL, $data_url19);

curl_setopt($ch19, CURLOPT_HEADER, false);

curl_setopt($ch19, CURLOPT_HEADER, 0);

curl_setopt($ch19, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch19, CURLOPT_COOKIEFILE, $cookie_file);

$content12 = curl_exec($ch19);

file_put_contents("./content0/31-35/net" . $k . ".txt", $content12); //文件存放的位置
}
posted @   学无边涯  阅读(537)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示