php网页采集 修改版

使用python爬虫批量下载美女图片 嗯,最近由于需要写一个爬虫小程序,所以学了一点爬虫。 可是只是按照教程学好没劲啊,于是就想着能不能做点小项目,爬取个美女图片呢。 对于新手来说,还是找一个html网站比较好 我们在这个例程使用的网站根目录是   www.tu11.com 本例程使用的python是3.6版本的 #coidng:utf-8 import requests from PIL import Image fro... 阅读详情

改进了检查,显示给出错误提示信息,匹配模式更通用


<?php
header("content-type: text/html; charset=gb2312");
class HttpWrap
{
    public $timeout=10;
    public $status='';

    public $host;
    public $port=80;
    private $ip;
    private $conn;
    private $path;
    private $url;
    private $scheme;

    public $http_method='GET';
    public $http_version="HTTP/1.1";
    public $agent="Mozilla/5.0 (Windows NT 6.1; rv:33.0) Gecko/20100101 Firefox/33.0";
    public $accept="image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*";
    public $gzip="gzip";
    public $referer;
    public $cookie;
    public $submit_type="application/x-www-form-urlencoded";
    private $accept_language="zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3";
    public $connection="keep-alive";


    private $cmd_line;
    private $header;
    public $post_content;

    private $redirect;
    private $is_gzip;
    public $response_num;
    public $response_header;
    public $response_body_length=0;
    public $response_body;

    public $roll_link;
    public $roll_group;
    public $filename;
    public $encoding;
	
	public $match_status=0;

   public  function init($url)
    {
        $this->url=$url;
        $url_pair = parse_url($url);
        $this->host = $url_pair['host'];
        $this->path = $url_pair['path'];
        $this->scheme = $url_pair['scheme'];

        if(empty($this->ip))
        {
            $this->ip = gethostbyname($this->host);
        }

        if(!empty($url_pair['port']))
        {
            $this->port = $url_pair['port'];
        }
     
			if($this->connect())
			{
				$this->sendRequest();
			}
			else
			{
				die($this->status);
			}
		
        //如果响应头部存在重定向,则对重定向发送请求
        if($this->redirect)
        {
            if(preg_match("#^http://".preg_quote($this->host)."#i",$this->redirect))
            {
                $this->referer=$this->host."/".parse_url($this->redirect)['path'];
                $this->init($this->redirect);
            }
        }
        if($this->roll_link)
        {
            $next_url = substr($this->url,0,strripos($this->url, '/')+1).$this->roll_link;
            //如果下一页等于当前页
            if(strtolower(trim(basename($this->url,'.html'))) == strtolower(trim(basename($next_url,'.html'))))
            {
               $next_group = $this->getNextGroup($this->response_body);
               echo "<font color='color'>即将采集下一组</font><br />";
               sleep(1);
               $this->init($next_group);
            }
            else
            {
                $this->init($next_url);
            }

        }
        else
        {
            die("<font color='red'>没有下一页,原因是</font>:".$this->match_status);
			
        }

    }

   private function connect()
   {

       $this->conn = fsockopen($this->ip,$this->port,$errno,$errstr,$this->timeout);
       if($this->conn)
       {
           $this->status = '链接成功';
           return true;
       }
       else
       {
            switch($errno)
            {
                case -3:
                        $this->status="创建socket链接失败";
                case -4:
                        $this->status="dns查询失败";
                case -5:
                        $this->status="链接被拒绝或超时";
                default:
                        $this->status="创建连接失败";
            }
            return false;
       }
   }
   private function sendRequest()
   {
       if(empty($this->path))
       {
           $this->path="/";
       }
       $this->cmd_line=$this->http_method." ".$this->path." ".$this->http_version."\r\n";

       if(!empty($this->host))
       {
           $this->header .= "Host: ".$this->host."\r\n";
       }

       if(!empty($this->agent))
       {
           $this->header .="User-Agent: ".$this->agent."\r\n";
       }

       if(!empty($this->accept))
       {
           $this->header .= "Accept: ". $this->accept ."\r\n";
       }
       if(!empty($this->gzip))
       {
           if ( function_exists("gzinflate") )
           {
                $this->header .= "Accept-encoding: gzip\r\n";
            }
            else
            {
                $this->status = "不支持压缩";
            }
       }
       if(empty($this->referer))
       {
           $this->header .= "Referer: ".$this->url."\r\n";
       }
	   else
	   {
			$this->header .= "Referer: ".$this->referer."\r\n";
	   }
       if(!empty($this->accept_language))
       {
           $this->header .= "Accept-Language: ".$this->accept_language."\r\n";
       }
       if(!empty($this->cookie))
       {
           if(!is_array($this->cookie))
           {
               $this->header .="Cookie: ".$this->cookie;
           }
           else
           {
               if(count($this->cookie) >0)
               {
                   $cookie = "Cookie: ";
                   foreach($this->cookie as $key => $val)
                   {
                       $cookie.=$key."=".urlencode($val).";";
                   }
                  $cookie = substr($cookie, 0, strlen($cookie)-1)."\r\n";
               }
               $this->header .= $cookie;
           }
       }
       if(!empty($this->submit_type))
       {
           $this->header .="Content-Type: ".$this->submit_type."\r\n";
       }
       if(!empty($this->post_content))
       {
           $this->header .= "Content-length: ".strlen($this->post_content)."\r\n";
       }
       if(!empty($this->connection))
       {
           $this->header .= "Connection: ".$this->connection."\r\n";
       }
       $this->header .="\r\n";
       //上面是HTTP请求头部信息
       //echo $this->cmd_line.$this->header.$this->post_content; exit();
       //发送请求
       $len = strlen($this->cmd_line.$this->header.$this->post_content);

        if($len != fwrite($this->conn, $this->cmd_line.$this->header.$this->post_content,$len))
        {
            $this->status = "发送请求failed";
            die($this->status);
        }
       //接受响应,每次读取一行内容,首先解析响应头
       while($response_header = fgets($this->conn, 1024))
       {
           if(preg_match("#^HTTP/#",$response_header))
            {
                //匹配状态数字,200表示请求成功
                if(preg_match("#^HTTP/[^\s]*\s(.*?)\s#",$response_header, $status))
                {
                        $this->response_num= $status[1];//返回代表数字的状态
                }
            }
            //echo $this->response_num; exit();
            // 判断是否需要重定向
            if(preg_match("#^(Location:|URI:)#i",$response_header))
            {
                // 获取重定向地址
                preg_match("#^(Location:|URI:)\s+(.*)#",trim($response_header),$matches);

                //如果重定向字段不包含主机名,不是以以://开头的,则拼接王完整的请求地址,模式+主机+端口
                if(!preg_match("#\:\/\/#",$matches[2]))
                {
                    // 补全主机名
                    $this->redirect = "http://".$this->host.":".$this->port;

                    //添加路径
                    if(!preg_match("|^/|",$matches[2]))
                           $this->redirect .= "/".$matches[2];
                    else
                           $this->redirect .= $matches[2];
                }
                else
                //包含完整的主机地址
                        $this->redirect = $matches[2];
            }

        //判断返回的数据的压缩格式
	if (preg_match("#^Content-Encoding: gzip#", $response_header) )
          {
                $this->is_gzip = true;
          }
          if(preg_match('#^Content-Length:\s*(\d+)#i', $response_header, $len))
          {
              $this->response_body_length = $len[1];
          }
          if(preg_match('#^Set-Cookie:#i', $response_header))
          {
              $items = explode(':', $response_header);
              $this->cookie = explode(';', $items[1])[0];

          }

        //解析完响应头部
        if(preg_match("/^\r?\n$/", $response_header) )
            break;

        $this->response_header[]=$response_header;
       }
       //可以成功返回响应头部信息,响应状态码也为200
      //var_dump($this->response_header); exit();

        if($this->response_num==200)
        {
            $sub_dir;
            $dirname;
            $path;
            $filename;
            if(preg_match('#/(\d+)/#', $this->url, $sub_dir))
            {
                $dirname = "./download/".$sub_dir[1];
            }
            else
            {
                $dirname = "./download/".date("Ymd");
            }

            $len=0;
            while($items = fread($this->conn, $this->response_body_length))
            {
                if(!is_dir($dirname))
                {
                    $path = mkdir($dirname,0777,true);
                }
                $filename = $dirname.'/'.basename($this->url);
			
                $len = $len+strlen($items);
                $this->response_body = $items;
                file_put_contents($filename, $items, FILE_APPEND);
                //这里必须判断读取的长度,不然会在这里阻塞
                if($len >= $this->response_body_length) break;

            }

            if($this->is_gzip)
            {
                $this->response_body = gzinflate ($this->response_body);
            }
            echo str_repeat("  ", 2048);
            echo "对链接".$this->url."发起请求<br />";
            $this->getRollLink($this->response_body);
        }
   }
   //这个函数主要实现分析出下一页的链接
    private function getRollLink($content, $flag='')
   {
       if(preg_match('#<ul\s+class="image"[^>]*?>.*?</ul>#is', $content, $match))
       {
           if(preg_match_all('#<a\s+[^>]+?>.*?</a>#is', $match[0], $items))
		   {
				//var_dump($items[0]);
				$len = count($items[0]);
				$next_page = $items[0][$len-1];
				if(preg_match('#<a\s+href="([^"]+)"\s*>#i', $next_page, $link))
				{
					$this->roll_link = $link[1];
				}
				else
				{
					$this->roll_link = false;
					$this->match_status="匹配下一页失败";
				}
		   }
		   else
		   {
				$this->roll_link = false;
				$this->match_status="匹配<a>组失败";
		   }
       }
       else
       {
          $this->roll_link = false;
		  $this->match_status="匹配image分页组失败";
       }
   }
   //这个函数主要实现分析出下一组的链接
   private  function getNextGroup($content)
   {
       
	if(preg_match('#<ul\s+class="page"[^>]*?>.*?</ul>#is', $content, $match))
       {
			//echo $match[0]."<br />";
           if(preg_match_all('#<a\s+href="([^"]*?)">.*?</a>#si', $match[0], $next))
           {
                //var_dump($next[1]);
                $choice;
                if(count($next[1])==2)
                {
                    $first = basename($next[1][0], ".html");
                    $second = basename($next[1][1], ".html");
                    //往前翻页,进入下一组
                    if(intval($first) < intval($second))
                    {
                            $choice = $first;
                    }
                    else
                    {
                            $choice = $second;
                    }
                    //h获取下一组
                    foreach($next[1] as $item)
                    {
                        if(strripos($item, $choice) !=false )
                        {
                            if(substr($item, 0,2) =='..')
                            {
                                    $link=  substr($item, 2);
                                    $sub_path = explode('/', $this->path);
                                    $url = $this->scheme.'://'.$this->host.'/'.$sub_path[1].$link;
                                    return $url;
                            }
                        }
                    }
                }
                //如果是最后一组,即没有下一组了
                else if(count($next[1])==1)
                {
                      if(substr($next[1][0],0,2)=='..')
                      {
                        $link = substr($next[1][0],2);
                        $sub_path = explode('/', $this->path);
                        $url = $this->scheme.'://'.$this->host.'/'.$sub_path[1].$link;
                        return $url;
                      }
                }
           }
           else
           {
               $this->status = "failed to match href";
           }

       }
       else
       {
            $this->status = "failed to match class=page";
       }
   }

}
ob_implicit_flush(true);
set_time_limit(0);
$url = $url = "http://www.mmkao.com/Beautyleg/201412/7066_2.html";
$http = new HttpWrap();
$http->init($url);
?>


pyecharts 画图 pyechart 用于 web 绘图,是百度画图的一个高级接口 阅读详情

相关推荐

如何使用PHP函数进行网页爬虫和数据采集?

本文介绍了如何使用PHP函数进行网页爬虫和数据采集。通过这些方法,我们可以轻松地获取所需的各类数据,并应用于我们的开发项目中。随着互联网的快速发展,越来越多的网站和网页中蕴藏着我们需要的各类数据。在本文中,我将介绍如何使用PHP函数进行网页爬虫和数据采集,并给出相关的代码示例。上述代码使用DOMDocument类加载HTML内容,并使用getElementsByTagName方法获取所有的a标签,然后遍历输出链接地址。上述代码使用了cURL函数发送一个GET请求,并获取了目标网址的页面内容。

Ob2024的博客 1141

BEAUTYLEG

http://blog.youkuaiyun.com/hellogv/archive/2008/12/15/3521119.aspx

iteye_11091的博客 4709

大麦网回流票监控实战:如何利用sign参数和cookie实现自动抢票(避坑指南)

本文详细介绍了如何利用sign参数和cookie构建大麦网回流票监控系统,实现自动化抢票。通过分析大麦网票务系统的核心机制、获取关键身份凭证、逆向分析sign签名算法,并构建完整的监控系统,帮助用户高效捕捉回流票机会。文章还提供了实战避坑指南和合法合规的注意事项,确保系统稳定运行且符合平台规则。

weixin_28568819的博客 412

scrapy--Beautyleg

  很早就开始关注:Beautyleg高清丝袜美腿.关注之后开始觉得打开了新世界的大门,如果有相同观点的,那么你很有品味.说真的,学习爬虫的动力之一就是想把里面的图片爬取下来。哈哈哈!!! 给大家放点爬取完的图片,激励下大家赶紧动手。嘿嘿嘿 1.Beauty.py # -*- coding: utf-8 -*- import scrapy from scrapy.pi...

weixin_30347009的博客 4756

液冷方式介绍

如果将直径在1~100nm的颗粒悬置在传热流体(例如:水、乙烯、乙二醇等)中时,其传热能力会得到提升,因为大多数固体材料的热导率要大于液体,因此由颗粒、流体组成的混合物热导率也高于液体本身的热导率,由此制成的流体,我们称之为纳米流体。金属冷管的液体工质蒸散量几乎为0,而柔软材质的管道则会产生液体的蒸散,在封闭式循环系统中,为了弥补液体工质的蒸散,必须定期在系统中补充液体工质。——我们之前说过,材料的导电和导热的机制大致是类似的,所以导电能力更强的金属往往具有更好的导热能力。

制冷技术咨询与服务的博客 2037

项目管理-(补充)七种基本质量工具

七种基本质量工具,用于PDCA循环的架构内 解决与质量相关的问题,分为老七工具和新七工具。 1)老七种:刘英只点劣质茶(流程图、因果图、直方图、散点图、帕累托图、控制图、核查表)2)新七种:锯树联亲测动优(矩阵图、树形图、关联图、亲和图、过程决策程序图、活动网络图、优先矩阵)

weixin_42081167的博客 4604

python自学免费图片_自学Python----爬取Beautyleg图片

[Python] 纯文本查看 复制代码import requestsimport osimport timefrom lxml import etree'''xpath获取的element对象返回的是个字典.tag(标签名称) .attrib(标签属性) .text(标签文本)'''def get_xpath_text(url,headers):response = requests.get(u...

weixin_39614276的博客 5449

海康视觉平台VisionMaster使用学习笔记(1)

双击图像源设置图像源的属性,像素格式分为Mono8和RDB24分别对应导入的图像是彩色还是黑白。打开相机驱动软件MVS,对连接的相机进行属性上的配置,先对相机的IP进行对应的设置。将自动触发的使能打开,保存配置好的相机属性,默认保存到用户集1中。点击MVS软件中的触发按钮,查看相机是否进行正常的触发拍照。打开VM软件添加一个图像源,选择图像源选项拖出图像源。回到VM软件中将选择相机选项选择到配置好参数的相机。取图方式也可以调整为相机取图,将图像源改为相机。双击相机进行连接后对相机的属性进行配置。

A567852的博客 1万+

使用php采集网页内容

一、file_get_contents()获取网页 获取网页http://news.sina.com.cn/c/nd/2016-10-23/doc-ifxwztru6951143.shtml全部内容 <?php $url = "http://news.sina.com.cn/c/nd/2016-10-23/doc-ifxwztru6951143.shtml"; $html = f...

fuguoda的博客 1483

从零实现地震波场模拟:交错网格有限差分法核心代码精讲

本文详细介绍了从零实现地震波场模拟的核心技术,重点讲解了交错网格有限差分法的实现过程。通过速度-应力弹性波方程的离散化处理,结合代码实例演示了应力与速度更新的关键步骤,并分享了震源加载、稳定性条件等实用技巧,为计算地球物理学研究提供实践指导。

weixin_42556197的博客 410

SpringBoot实战教程-springboot概论

Spring Boot 是一个快速开发框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,以及自动配置。内置web容器,帮助开发者能够实现快速开发,简化了应用系统的初始搭建以及开发过程。

鸟哥哥的专栏 4155

PHP采集页面的四种方法

什么叫采集?就是使用PHP程序,把其他网站中的信息抓取到我们自己的数据库中、网站中。可以通过三种方法来使用PHP访问到网页    1. 使用file_get_contents()         前提:在php.ini中设置允许打开一个网络的url地址。                    使用这个函数时可以直接将路径写入函数中,将所选路径的内容加载出来,但是在访问网上的网址时必须连接网络&lt...

柚子哥哥i的博客 7015

【部署】Kimi 接入OpenClaw完整步骤及关键注意事项

本文详细介绍了如何将Kimi AI接入OpenClaw系统的完整步骤。首先需确保环境满足OpenClaw版本要求和系统支持,然后通过配置向导完成本地网关设置和Kimi模型接入,包括API密钥配置。文章提供了详细的命令操作和界面截图指导,并重点说明了安全警告处理、服务状态检查、API密钥有效性验证等关键注意事项。最后还展示了Kimi流量消耗明细和问题排查方法,帮助用户顺利完成接入并解决常见问题。整个流程清晰明了,涵盖了从环境准备到最终验证的全部环节。

海兰 7183

php网页采集器 源码,PHP采集器的简单示例代码

复制代码 代码示例:#zs#** 采集器代码一例* by www.jbxue.com#fzs#$url = "http://book.sina.com.cn/nzt/lit/zhuxian2/index.shtml";// 图书地址$ver = "old"; //新旧版本$r = file_get_contents($url); //用file_get_contents将网址打开并读取所打开的页面...

weixin_35745051的博客 829

18、偏微分方程数值计算:粘性不可压缩流与电磁学的有限元方法

本文系统介绍了偏微分方程数值计算在粘性不可压缩流与电磁学中的应用,重点探讨了稳态与非稳态Navier-Stokes问题的混合有限元方法及求解技术,包括弱形式构建、半离散与时间离散格式、牛顿迭代法等。同时,详细阐述了电磁学中Maxwell方程的有限元与时域有限差分法(FDTD)求解方法,涵盖时间谐波与时域波方程、边界条件处理、稳定性分析与误差估计。结合MATLAB代码示例和实际案例,展示了速度场、压力、电场与磁场的数值模拟过程,并通过流程图与表格对比了两类问题的方法原理、应用场景与收敛性特性。最后展望了多物理

lemon的博客 88

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

批量采集上百万网页内容-php采集网页-php爬虫视频教程6

直到现在才真正进入我们要采集的网页内容, 前面都是为了这个目标做的准备, 跟着子恒老师来看看怎么使用php采集到你想要的网页数据吧… 批量采集上百万网页内容视频教程在线观看 http://edu.youkuaiyun.com/course/detail/2419/37977

2403

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

php入库源码,php网页采集入库程序代码-PHP源码

网页采集现在用到最多是工具了,像最受站长欢迎的就是火车头了,但有一些站长喜欢使用网页来自定义采集了,下面一起来看一个php 网页采集入库程序代码《script》ec(2);《script》php 网页采集程序总结,最近帮朋友做了个采集程序以www.xxxx.com/shop_list.php?page=1&province=%B1%B1%BE%A9为例%B1%B1%BE%A9是gb2312...

weixin_35835018的博客 983

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

php网页采集标题,php利用fopen实现简单的网页采集程序

这个采集程序是一个非常简单的程序了,个人认为不适合于大量数据采集了单页还是没有问题了,因为fopen函数对于远程文件操作与多线程时是非常的不理想的,这个只是一个作者写的觉得好玩合出来了。 代码如下 复制代码 /*** 根据URL采集网页内容** @param string $url 链接地址* @return string*/private functio...

weixin_34049581的博客 182

php采集网页,phpQuery采集网页实现代码实例

前言平时开发中可能遇到一个问题。采集网页,小偷程序等等。各种花式秀正则的话,虽然能体现出geek,但是我觉得做事却不够优雅。采集到的网页说白了也是DOM,jQuery各种优雅地获取节点。幸好,有这个类库,帮我们解决了这个,那就是phpQuery.为什么使用phpQueryphpQuery是基于php5新添加的DOMDocument。而DOMDocument则是专门用来处理html/xml。它提供了...

weixin_35698059的博客 329

php获取网页所有文字,PHP 采集网页文字并保存的实现方法

这篇文章主要为大家详细介绍了PHP 采集网页文字并保存的实现方法,具有一定的参考价值,可以用来参考一下。PHP采集网页文字采集并保存,感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧。经测试代码如下:/***功能:获取页面内容,存储下来阅读;lost63** @param* @author 512笔记 www.512pic.com**/Class GetUrl{var $url; //地址...

weixin_42521558的博客 412

php 保存网页,PHP 采集网页文字并保存的实现方法

搜索热词PHP采集网页文字采集并保存,感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧。经测试代码如下:/***功能:获取页面内容,存储下来阅读;lost63** @param* @author 编程之家 jb51.cc jb51.cc**/Class GetUrl{var $url; //地址var $result; //结果var $content; //内容var $lis...

weixin_33435783的博客 448

php 采集网页 webfont,phpQuery采集网页内容的示例代码

本节内容:phpQuery实现采集网页内容的代码说明:phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容,比如获取某新闻网站的头条信息。它采用了jquery的思想,可以像使用jQuery一样处理页面内容,获取想要的页面信息。1,采集头条采集新浪网国内新闻的头条:复制代码 代码示例:include 'phpQuery/phpQuery.php';phpQu...

weixin_29295541的博客 156

php出入库单生成源码,php 网页采集入库程序代码

网页采集现在用到最多是工具了,像最受站长欢迎的就是火车头了,但有一些站长喜欢使用网页来自定义采集了,下面一起来看一个php 网页采集入库程序代码php 网页采集程序总结,最近帮朋友做了个采集程序以www.xxxx.com/shop_list.php?page=1&province=%B1%B1%BE%A9为例%B1%B1%BE%A9是gb2312的转码,例如$aa=”北京”;$aa = @...

weixin_33099015的博客 1160

php抓取html元素内容 采集网页

网页抓取就像搜索引擎一个可以去自动抓取其它服务器上的内容了,下面我整理的几个php常用做法,大家一起来看看. 抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐,LZ总结了几种常用的、易于实现的网页抓取方式,如果熟悉JQuery选择器,这几种框架会相当简单. 一、Ganon 项目地址:http://code.google.com/p/ganon/ 文档:http://code.google.com/p/ganon/w/list 测试:抓取我的网站首页所有cla

u014289649的博客 1973

php多线程采集网页数据-php采集网页-php爬虫视频教程8

前面的课程, 使用php采集时, 我们都是使用单线程。 当要采集的数量特别大时, 如果能够使用多线程采集, 无疑效率会提高不少。 最后一节课程, 跟着子恒老师学习怎么使用php进行多线程采集网页… php多线程采集网页数据视频教程在线观看

571

利用PHP和Selenium实现爬虫数据采集

当然,在实际的数据采集过程中,还有很多需要注意的地方,比如网站的反爬虫策略、浏览器和Selenium的版本兼容性等等。京东的网页中,商品数据都被放在一个class为"gl-item"的div中,我们可以使用findElements()来获取所有符合条件的div元素,并逐个解析其中的内容。随着互联网技术的不断发展,数据已经成为了一种极其宝贵的资源,越来越多的企业开始关注数据的价值,通过对数据进行挖掘和分析,提高自身的竞争力。首先,我们需要打开京东商城的首页,并搜索要采集的商品。一、什么是Selenium?

Ob2024的博客 1383
上一篇: php网页采集 想对高效版
下一篇: sphinx配置
错_对
博客等级 码龄16年 68粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值