예제 #1
0
 public static function view($id)
 {
     httpCls::$response = false;
     httpCls::set('host', crawlConf::$host);
     httpCls::set('uri', $id);
     httpCls::set('agent', crawlConf::$browser[0]['agent']);
     httpCls::set('accept', crawlConf::$browser[0]['accept']);
     httpCls::set('cookie', crawlConf::$browser[0]['cookie']);
     $rs = httpCls::send();
     //返回内容
     //httpCls::$response = (httpCls::unchunk2preg(httpCls::$response));
     return httpCls::$response;
 }
예제 #2
0
 public function img($url)
 {
     httpCls::$response = '';
     $info = parse_url($url);
     httpCls::set('host', $info['host']);
     httpCls::set('uri', $info['path'] . '?' . $info['query']);
     httpCls::set('agent', crawlConf::$browser[0]['agent']);
     httpCls::set('accept', crawlConf::$browser[0]['accept']);
     httpCls::set('cookie', crawlConf::$browser[0]['cookie']);
     httpCls::set('timeout', 120);
     $rs = httpCls::down();
     $content = httpCls::$response;
     $file = pathinfo($info['path']);
     $data = explode("\r\n\r\n", $content);
     file_put_contents(ROOT . 'img/' . $file['filename'] . '.jpg', $data[1]);
     return true;
 }
예제 #3
0
 public static function down()
 {
     if (self::$host) {
         $fp = fsockopen(self::$host, self::$port, self::$errno, self::$errstr, self::$timeout);
         self::$request = self::method(self::$method) . " " . self::$uri . " HTTP/1.0\r\n";
         //请求方式 资源 协议
         self::$request .= "Host: " . self::$host . "\r\n";
         //服务器
         self::$request .= "User-agent:" . self::$agent . "\r\n";
         //客户端
         foreach (self::$accept as $k => $v) {
             self::$request .= self::accept($k, $v) . "\r\n";
         }
         if (self::$cookie != '') {
             self::$request .= "Cookie: " . self::$cookie . "\r\n";
         }
         //POST的情况下
         $post = self::$body . "\r\n";
         if (self::$method == 2) {
             self::$request .= "Content-Length: " . strlen($post) . "\r\n";
         }
         self::$request .= "Referer: http://" . self::$host . self::$uri . "\r\n";
         self::$request .= "Connection: close\r\n";
         self::$request .= "\r\n";
         if (self::$method == 2) {
             self::$request .= $post;
         }
         echo '下载图片' . PHP_EOL;
         if ($fp) {
             //                    $fi = fopen(ROOT.'img/'.time().'.png', 'w');
             fwrite($fp, self::$request);
             //写入内容
             $str = '';
             while (!feof($fp)) {
                 $str = fgets($fp, 1024);
                 //                        echo $str;
                 self::$response .= $str;
             }
             //                    fclose($fi);
             fclose($fp);
             return true;
         }
     }
     return false;
 }