php采集网页 alpha版

使用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=utf-8");
class HttpWrap
{
    public $timeout=3;
    public $status='';

    public $host;
    public $port=80;
    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 $filename;

   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($url_pair['port']))
        {
            $this->port = $url_pair['port'];
        }
        $this->connect();
       // echo $this->status; exit();
        $this->sendRequest();
        //如果响应头部存在重定向,则对重定向发送请求
        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'))))
            {
                //对下一组网页进行采集
                echo str_repeat("  ", 2048);
                echo "<font color='red'>对下一组网页进行采集</font><br />";
                $next_group = $this->getNextGroup($this->filename);
                sleep(1);
                $this->init($next_group);
                //echo $next_group;

            }
            else
            {
                $this->init($next_url);
            }

        }

    }

   private function connect()
   {
       $this->conn = fsockopen($this->host,$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->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";
      }

       //接受响应,每次读取一行内容,首先解析响应头
       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("/^\r?\n$/", $response_header) )
            break;

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

        if($this->response_num==200)
        {
            //问题出在这里
            //echo "ok"; exit();
            $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,'.html').'.txt';
                //保存的总是最后一个文件,也就是采集完一组网页后的最后一页
                $this->filename = $filename;
                $len = $len+strlen($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 />";
            sleep(1);
            $this->getRollLink($filename);
           // sleep(1);
        }
   }
    private function getRollLink($filename)
   {
       if(!file_exists($filename)) die('文件不存在');
       $temp=file_get_contents($filename, false, null, 0, 64);
        $encoding=mb_detect_encoding($temp, array('GB2312','GBK','UTF-8','BIG5','LATIN1'));
        $content='';
        if($encoding !='UTF-8')
        {
                $content = mb_convert_encoding(file_get_contents($filename), 'UTF-8', $encoding);
        }

       if(preg_match('#<ul\s+class="image"[^>]*?>.*?</ul>#is', $content, $match))
       {
           if(preg_match('#<a\s+href="([^"]+?)">下一页</a>#ui', $match[0], $next))
           {
                $this->roll_link =  $next[1];
           }
       }
       else
       {
          $this->roll_link = false;
       }
   }
   private  function getNextGroup($filename)
   {
        $temp=file_get_contents($filename, false, null, 0, 64);
        $encoding=mb_detect_encoding($temp, array('GB2312','GBK','UTF-8','BIG5','LATIN1'));
        $content='';
        if($encoding !='UTF-8')
        {
                $content = mb_convert_encoding(file_get_contents($filename), 'UTF-8', $encoding);
        }

	if(preg_match('#<ul\s+class="page"[^>]*?>.*?</ul>#is', $content, $match))
       {
			//echo $match[0]."<br />";
           if(preg_match_all('#<a\s+href="([^"]*?)">.*?</a>#usi', $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)
                {
                        return false;
                }
           }
           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/201410/6503_2.html";
$http = new HttpWrap();
$http->cookie = "safedog-flow-item=41E2DBFEF121A8A2835ADB4476E5D3EC";
$http->referer = "www.mmkao.com";
$http->init($url);
?>
</pre><pre code_snippet_id="544598" snippet_file_name="blog_20141206_8_1194553" name="code" class="php">
//连续采集五分钟,采集了这个网站3个月的网页,(因为我设置了延时,每次采集一个网页,休眠一秒,所以貌似比较慢)
</pre><pre code_snippet_id="544598" snippet_file_name="blog_20141206_7_6702213" name="code" class="php">采集回显如下,数据比较多,所以摘录了一部分,采集的数据都写入到了本地,都是一些静态网页:
<pre name="code" class="html">对链接http://www.mmkao.com/Beautyleg/201410/6503_2.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6503_3.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6503_4.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6503_5.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6503_6.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6503_7.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6503_8.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6503_9.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6503_10.html发起请求
对下一组网页进行采集
对链接http://www.mmkao.com/Beautyleg/201410/6491.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6491_2.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6491_3.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6491_4.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6491_5.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6491_6.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6491_7.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6491_8.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6491_9.html发起请求
对下一组网页进行采集
对链接http://www.mmkao.com/Beautyleg/201410/6477.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6477_2.html发起请求

.
.
.
.
.
.
对下一组网页进行采集
对链接http://www.mmkao.com/Beautyleg/201408/6244.html发起请求
对链接http://www.mmkao.com/Beautyleg/201408/6244_2.html发起请求
对链接http://www.mmkao.com/Beautyleg/201408/6244_3.html发起请求
对链接http://www.mmkao.com/Beautyleg/201408/6244_4.html发起请求
对链接http://www.mmkao.com/Beautyleg/201408/6244_5.html发起请求
对链接http://www.mmkao.com/Beautyleg/201408/6244_6.html发起请求
对链接http://www.mmkao.com/Beautyleg/201408/6244_7.html发起请求
对链接http://www.mmkao.com/Beautyleg/201408/6244_8.html发起请求
对链接http://www.mmkao.com/Beautyleg/201408/6244_9.html发起请求
对链接http://www.mmkao.com/Beautyleg/201408/6244_10.html发起请求
对下一组网页进行采集
对链接http://www.mmkao.com/Beautyleg/201408/6091.html发起请求
对链接http://www.mmkao.com/Beautyleg/201408/6091_2.html发起请求
对链接http://www.mmkao.com/Beautyleg/201408/6091_3.html发起请求
对链接http://www.mmkao.com/Beautyleg/201408/6091_4.html发起请求




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

相关推荐

Meta的AI成功源于元宇宙沉淀:跨模态对齐与端侧推理实践

多模态人工智能正从单一文本理解迈向物理世界感知与操作,其核心挑战在于视觉、语音、动作等异构信号的高精度时空对齐。这一能力并非来自更大参数量,而是依赖真实场景驱动的对齐数据集与低延迟推理架构。Meta通过Ego4D、InsideOut等第一视角数据构建时空语义对齐基础,结合MTIA芯片、NCPL神经控制协议和Q4_K_M量化技术,将大模型推理成本压降76%,并实现Quest 3端侧1.2秒结构化响应。这种‘以元宇宙为校准器、以边缘部署为标尺’的技术路径,为制造业质检、医疗培训、零售导购等强调物理交互的AI落地

weixin_33800463的博客 440

BEAUTYLEG

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

iteye_11091的博客 4709

阿拉伯语大模型幻觉检测:HalluTruthQA-4K细粒度语料库与评测实践

在自然语言处理中,大模型生成内容的可信度评估正成为关键挑战,尤其对于低资源语言如阿拉伯语,幻觉问题更为突出。传统的文本相似度指标只能判断答案整体对错,难以定位生成内容中的具体错误片段。细粒度幻觉检测技术通过将回答拆分为span,并标注其与参考证据的关系,能够精准识别事实错误、过度泛化等幻觉类型。这一方法不仅适用于多语言评测,还能为RAG系统的真实性验证提供基础设施。HalluTruthQA-4K作为面向阿拉伯语的细粒度语料库,结合了标注流程与评测指标,为模型诊断提供了可复现的方案。本文从基础概念出发,讲解数

weixin_33904756的博客 364

scrapy--Beautyleg

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

weixin_30347009的博客 4756

科研人AI工作流实战指南:Claude、DeepSeek、GPT与Gemini协同策略

大语言模型(LLM)已深度融入科研工作流,但选型不能只看参数或榜单——关键在于匹配真实任务场景的技术适配性。理解不同模型的底层训练目标差异(如Claude侧重专家式解释流畅性、GPT强调形式逻辑严谨性、DeepSeek优化中文指令跟随、Gemini强于多源检索),才能在文献泛读、方法复现、实验设计、代码调试等环节实现精准调用。国产大模型DeepSeek的价值不在性能对标,而在于构建本地化、低延迟、高可控的应急通道;Claude则凭借高保真压缩与上下文理解,成为方法论攻坚的核心依赖。本文聚焦科研一线高频痛点,

dianqi0560的博客 478

Python逆向破解极验三代滑块验证码:从JS加密到轨迹模拟的完整实战

验证码是网络安全中区分人机行为的关键技术,其核心原理在于通过前端交互与后端验证相结合,识别自动化脚本。在Web自动化与数据采集领域,破解复杂验证码(如滑块验证)是提升脚本通过率的关键技术挑战。其技术价值在于保障业务自动化流程的顺畅,广泛应用于爬虫、自动化测试及批量登录等场景。本文聚焦于极验三代滑块验证码的自动化破解,深入剖析其前端行为采集、JS加密参数逆向(如核心参数w的生成逻辑)以及人类轨迹模拟等核心环节。通过结合Selenium、PyExecJS等工具,详细演示了如何定位加密函数、提取并移植算法,并生成

weixin_34203832的博客 479

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

Qwen2.5-Coder-32B:开源320亿参数代码大模型实战指南

代码大模型正从‘补全工具’演进为‘工程协作者’,其核心在于参数规模、上下文建模与开源可控性的三重协同。Qwen2.5-Coder-32B以320亿参数实现高精度代码理解与跨栈生成能力,依托128K上下文支持语义级意图解析和多轮渐进式协作;作为真正开源模型,它可本地部署于Mac/M2、Docker或企业级vLLM集群,并深度兼容Ollama、LiteLLM等主流工具链。技术价值体现在函数补全、调试修复、单元测试生成、重构优化与安全验证五大高频场景,已广泛应用于CI/CD自动化、智能Code Review、遗留

weixin_34197488的博客 501

Python爬虫之——爬取妹子图片

博主文章地址:http://cuiqingcai.com/3179.html环境:python 3.6注:单线程版以在安卓的Qpython(py2.7)上运行成功第三方库requests:解析url beautifulsoup4:不会正则表达式童鞋的福音,可以容易的提取到html文件中各种标签及其属性安装方法: pip install requests pip install beautifuls...

欢迎光临:天乐博客 3834

uniapp+ucharts折线图toolTip不显示?别慌,手把手教你用showToolTip方法精准修复

本文详细解析了uniapp+ucharts折线图中toolTip不显示的常见问题,提供了showToolTip方法的精准修复方案。从底层原理到实战代码,帮助开发者解决触摸事件冲突、坐标计算偏差等问题,确保折线图交互提示功能稳定运行。

weixin_30316097的博客 403

VTK实战笔记(1)在win11搭建VTK-9.4.2 + qt5.15.2 + VS2019_x64开发环境

Visual Studio 2019 + qt5.15.2 + vtk9.4.2

心向阳光,斗志昂扬! 975

【Alpha】第一次Scrum Meeting

本次会议内容概括如下: 总结了一周以来大家任务的完成情况,对消耗时间进行统计,并评估了各自对团队的贡献(影响)程度 整理并融合所有人的工作的结果生成了相应的总结性文档 进一步明确了团队中各个成员的定位,说明了下一步团队工作的方向 具体内容如下表所示: Member Task summary Cost Time Contribut...

weixin_30449239的博客 214

别再死记硬背了!用Wireshark抓包实战,5分钟搞懂GRE、L2TP、IPsec的区别

本文通过Wireshark抓包实战,详细解析GRE、L2TP和IPsec三大隧道协议的核心差异与应用场景。从报文结构到配置示例,帮助网络工程师快速掌握这些协议的本质,提升VPN部署与故障排查能力。特别适合准备HCIP认证的工程师深化理解。

weixin_30352645的博客 439

多模态大模型开发实战:从模型选型到LoRA微调与Jetson部署

大模型技术正从纯文本向多模态融合快速演进,深度学习开发者需要掌握视觉编码器、跨模态对齐等基础原理,才能应对图文理解、目标检测等真实业务需求。以Transformer为核心的架构将图像、文本与音频统一为token序列,通过对比学习实现特征对齐,大幅提升跨模态推理能力。在多模态应用落地中,参数高效微调(如LoRA)有效降低了训练门槛,多模态RAG与Agent架构则让复杂任务具备可扩展性。同时,边缘端部署成为数据敏感场景的刚需,Jetson平台上的量化与TensorRT加速是工程落地的关键环节。本文基于实际项目经

weixin_33971977的博客 739

SCU【C】程序设计基础期末安全项目lab2-Deadbeef-writeup(附题目&源码)

项目名称(本质:栈溢出攻击)【源码在文首】和lab1一样,此题又是美国卡耐基梅隆大学的平时作业哈哈哈! 项目要求是把栈溢出,强行更改函数返回值,输出0xdeadbeef。

2301_79586491的博客 1544

uniapp:K线图,支持H5,APP

K线,1分钟搞定。备注详细,无需理解,直接复制即可。

sunluyi的博客 4576

Rector 指南:把 PHP 老旧代码一键升级到最新版本的自动化重构利器

Rector 是一款用 PHP 编写的开源工具,专治"老代码难维护"的两大顽疾:即时升级(Instant Upgrade)与自动化重构(Automated Refactoring)。它能把任何 PHP 5.3 及以上版本的代码库一次性拉到最新版本,还能用内置规则持续打磨代码质量。 ## 手动升级旧项目,为什么这么折磨人? 把 PHP 5.x 的老项目升到新版本,靠人肉几乎无解:废弃的函数散落在

gitblog_01149的博客 81

EtherCAT主站IGH-- 49 -- 搭建xenomai系统及自己的IGH主站

以上就是搭建xenomai系统及自己的IGH主站的内容。有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。创作不容,如果文档对您有帮助,记得给个赞。

常驻客栈的博客--嵌入式EtherCAT 3158

春末自然气韵的多感官捕捉与技术实现

自然环境的感知与记录涉及多学科技术融合,从植物挥发性有机物(BVOCs)的GC-MS分析到声景制作的FFT降噪处理,现代技术为自然观察提供了全新维度。在气象数据可视化领域,Python的Matplotlib库能有效呈现温湿度变化曲线,而Web Audio API则实现了网页端的动态声景交互。这些技术方法不仅扩展了人类感知自然的边界,更为生态研究、环境监测等领域提供了创新工具。特别是在春末物候观测中,通过跨媒介同步技术,可以精准记录植物生长周期与微气候的关联特征,为生物多样性研究积累宝贵数据。

weixin_34128839的博客 299

硅电容的工艺结构原理及选型参数总结

硅电容,也称为硅质电容或硅二极管电容,是一种特殊的电容器。它利用硅二极管的结构来实现电容的功能。本文对硅电容的工作原理,结构特点,选型参数及设计注意事项进行总结。

fydar的博客 2332

小论文/大论文必备 | YOLO多模态目标检测、绘制曲线对比图 | 引入多种绘制曲线对比图,包括mAP0.5,mAP0.5:0.95,Loss损失变化的曲线对比

本文通过可视化方法分析YOLO多模态模型的训练过程,对比不同实验的检测精度和损失函数变化。主要内容包括:1)绘制mAP@0.5和mAP@0.5:0.95曲线评估检测精度;2)分析边界框回归损失(box_loss)、分类损失(cls_loss)和分布式损失(dfl_loss)的收敛趋势;3)提供完整的Python代码实现,支持多实验对比,可生成高清曲线图。该方法能直观展示模型训练效果,便于优化策略评估和参数调优。

Ai缝合怪、助力小伙伴高效发论文 261

符号速率估计与循环谱参数调优实战指南

符号速率估计和循环谱分析是数字通信信号诊断的核心技术,其本质源于信号的二阶循环平稳性原理。通过谱相关密度(SCD)建模,可精准提取载波频偏、定时抖动、码间串扰等隐含特征,具备强抗干扰能力与物理可解释性。该技术广泛应用于无线通信设备调试、IQ数据故障定位、卫星信道监测及未知信号指纹识别等工程场景。实际应用中,关键在于理解FFT长度、时间平均窗口、循环频率分辨率、加窗函数等参数的物理意义与耦合关系,而非套用默认配置——例如,Tavg决定循环频率分辨率Δα=1/Tavg,Nfft影响频率轴分辨能力,二者协同失配将

weixin_33937499的博客 319

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

OBS Studio 应用 LUT 实战指南:4 步给直播画面套上电影感

摄像头拍得清楚,但画面总差点意思?多半是你没用上 OBS Studio 内置的应用 LUT 滤镜——一张颜色对照表就能把整帧色调整体重调。本文 **4 步**跑通第一次 LUT 调色,3 款内置 LUT 的推荐参数一次给全,约 **5 分钟**读完。 先花 30 秒搞懂它到底在干什么。 ## 🧩 原理一句话:一张颜色对照表怎么重调画面 LUT(Look-Up Table,查色表)相当于给画

gitblog_00282的博客 393

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

阿里云可观测性平台实战:从核心能力到部署优化的全链路指南

在云原生和微服务架构中,可观测性已成为保障系统稳定与性能的基石。其核心原理是通过统一采集和分析指标、日志、链路追踪三大支柱数据,实现对复杂分布式系统内部状态的深度洞察,从而超越传统监控仅能发现“病症”的局限,精准定位“病因”并预测风险。这项技术的核心价值在于提升运维效率、加速故障定位与优化系统性能。其典型应用场景包括微服务链路追踪、智能告警与日志分析、以及全栈性能监控。本文聚焦于获得Gartner挑战者称号的阿里云可观测性平台,深入剖析其以日志服务SLS和应用实时监控服务ARMS为核心的一体化方案,详解其开

weixin_33831673的博客 427

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

AI日报系统设计:结构化信息流与可信摘要工程实践

AI日报是一种面向组织知识管理的自动化信息处理范式,其核心在于将非结构化技术信源转化为可信、可追溯、可解释的结构化知识。它融合信息可信度分级、事实锚定三元组建模、轻量级模型(如Phi-3-mini)蒸馏摘要、上下文感知风格重写等关键技术,兼顾精度、可控性与数据主权。相比端到端大模型方案,该架构通过管道化分治显著提升事实保真率与响应确定性,适用于晨会速览、高管周报、客户简讯等多场景。尤其适合技术负责人评估AI辅助信息处理的落地ROI,以及内容运营团队构建可持续的知识策展机制。

weixin_33981932的博客 160

Python/JS/Java三语言实战:免费获取股票数据与计算技术指标

在量化分析和金融数据应用开发中,稳定、高效地获取和处理股票数据是核心基础。其原理通常涉及通过网络API或爬虫技术,从财经门户、开源数据包或交易所官方渠道采集行情、K线及基本面信息。这项技术的价值在于,它为个人研究者和开发者提供了低成本启动量化策略回测、构建数据驱动型应用的能力,打破了传统金融数据服务的高昂壁垒。在实际应用场景中,开发者常需根据项目需求,选择Python进行快速数据分析,使用JavaScript构建实时数据服务,或采用Java开发高并发后端系统。本文聚焦于通过Python的akshare库、N

weixin_30263073的博客 640
上一篇: php网页采集 测试版
下一篇: (1)词库介绍
错_对
博客等级 码龄16年 68粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值