zoukankan      html  css  js  c++  java
  • 一个网页抓取的类支持get+post+cookie存储

    前段时间提取了一个工具类,分享给大家:

    <?php
    class httpconnector {
        private $curl;
        private $cookie;
        private $kv;
        function __construct(){
            $this->kv = new SaeKV();
            $this->kv->init();
            if($data=$this->kv->get("cookie"))
              $this->cookie=$data;
     
        }
        public function get($url) {
            $this->curl = curl_init();
            curl_setopt($this->curl, CURLOPT_URL, $url);
            curl_setopt($this->curl, CURLOPT_HEADER, 1);
            curl_setopt($this->curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
            curl_setopt($this->curl, CURLOPT_COOKIE, $this->cookie);
            curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1);
            $data = curl_exec($this->curl);
            curl_close($this->curl);
            preg_match_all("/Set-Cookie:(.*?);/", $data, $match, PREG_SET_ORDER);
            foreach ($match as $r) {
                if ($this->cookie != '') {
                    $this->cookie = $this->cookie . ';';
                }
                if (isset($r[1])) {
                    $this->cookie .= trim(str_replace("
    ", "", $r[1]));
                }
            }
            $this->kv->set("cookie",$this->cookie);
            return $data;
     
        }
        public function post($url, $params) {
            $this->curl = curl_init();
            curl_setopt($this->curl, CURLOPT_URL, $url);
            curl_setopt($this->curl, CURLOPT_HEADER, 1);
            curl_setopt($this->curl, CURLOPT_COOKIE, $this->cookie);
            curl_setopt($this->curl, CURLOPT_POST, 1);
            curl_setopt($this->curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
            curl_setopt($this->curl, CURLOPT_POSTFIELDS, $params);
            curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1);
            $data = curl_exec($this->curl);
            curl_close($this->curl);
            preg_match_all("/Set-Cookie:(.*?);/", $data, $match, PREG_SET_ORDER);
            foreach ($match as $r) {
                if ($this->cookie != '') {
                    $this->cookie = $this->cookie . ';';
                }
                if (isset($r[1])) {
                    $this->cookie .= trim(str_replace("
    ", "", $r[1]));
                }
            }
            $this->kv->set("cookie",$this->cookie);
            return $data;
     
        }
    }
    ?>
    
     
    
  • 相关阅读:
    今天解决了一个很郁闷的问题!
    解决了安装golive后html文件图标显示错误的问题
    [转载]Asp.Net 2.0 发布问题
    使用 Visual Studio 2005 构建“WPFE”项目
    Ajax学习网址备忘录
    [原创首发]深圳博客问测系统正式发布啦!
    如何在用户控件里联动Dropdownlist
    [转载]在ASP.NET中值得注意的两个地方
    [转]Prototype 1.5 Ajax 使用教程
    1038 Recover the Smallest Number (30 分)(贪心)
  • 原文地址:https://www.cnblogs.com/mengdejun/p/3375991.html
Copyright © 2011-2022 走看看