• 使用PHP curl模拟浏览器抓取网站信息


    curl是一个利用URL语法在命令行方式下工作的文件传输工具。curl是一个利用URL语法在命令行方式下工作的文件传输工具。
    它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传,
    上载文件断点续传, http代理服务器管道( proxy tunneling), 甚至它还支持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); //是否输出 1 or true 是不输出 0 or false输出
    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);
    ?>
  • 相关阅读:
    抓取国家地区基础数据
    h264
    h.264
    vlc 推送rtsp视频流不能播放
    花生壳tcp内网端口映射
    make 安装时指定目录
    ubuntu安装vsftpd
    vsftpd命令
    vim删除某一列
    linux打开防火墙
  • 原文地址:https://www.cnblogs.com/dsli/p/7420862.html
Copyright © 2020-2023  润新知