当前位置: 首页 > news >正文

一个使用 Golang 编写的新一代网络爬虫框架,支持JS动态内容爬取

大家好,今天给大家分享一个由ProjectDiscovery组织开发的开源“下一代爬虫框架”Katana,旨在提供高效、灵活且功能丰富的网络爬取体验,适用于各种自动化管道和数据收集任务。

项目介绍

Katana 是 ProjectDiscovery 精心打造的命令行界面(CLI)网页爬虫工具,采用高效的 Golang 语言编写。它专注于提供快速、高效且用户友好的网页数据采集体验,旨在通过爬取网站来全面收集信息和端点。尤为突出的是,Katana 支持先进的无头浏览技术,能够轻松访问并收集由 JavaScript、Angular 或 React 等技术构建的单页应用程序(SPA)中的动态内容。

功能特点

多种爬取模式:支持标准模式和无头模式(Headless),可根据不同的应用场景选择合适的模式进行网页爬取。

JavaScript 解析:能够解析和爬取 JavaScript 内容,这对于现代网页中大量使用 JavaScript 动态加载数据的情况非常有用,可以获取到更全面的网页信息。

自动表单填充:具备实验性的自动表单填充功能,可简化数据输入过程,方便在需要与表单交互的网页中进行数据采集。

范围控制:通过预配置字段和正则表达式,可灵活控制爬取的范围,精准地获取所需的数据。

自定义输出:支持预配置字段,能够根据用户的需求自定义输出的内容和格式,便于后续的数据处理和分析。

多种输入输出方式:输入数据支持 STDIN、URL 和列表文件等形式,输出数据支持 STDOUT、文件和 JSON 格式,方便与其他工具和系统进行集成。

技术优势

高性能:使用 Go 语言开发,充分利用 Go 的高性能特性和并发处理能力,实现快速高效的网络爬取,能够在短时间内处理大量的网页请求。

可配置性强:提供丰富的配置选项,如深度控制、爬取持续时间、最大响应大小等,用户可以根据具体的任务需求进行灵活配置,以达到最佳的爬取效果。

易于扩展:其模块化的设计使得扩展和定制新的扫描策略变得简单易行,开发人员可以轻松地添加新的功能模块或修改现有模块,以满足不断变化的业务需求。

应用场景

网络安全:可用于漏洞扫描和安全审计,帮助安全研究人员快速发现目标网站中的潜在安全漏洞,如结合 Nuclei 等漏洞扫描工具进行自动化漏洞检测。

数据挖掘:能够从网站中提取有价值的信息,如抓取电商网站的产品信息、新闻网站的文章内容等,为数据分析和数据挖掘提供数据支持。

SEO 分析:通过分析网站的结构和内容,帮助优化搜索引擎排名,为网站的 SEO 优化提供数据支持和决策依据。

市场研究:可以收集竞争对手的网站信息,包括产品信息、价格策略、市场活动等,为企业的市场调研和竞争分析提供数据支持。

安装使用

安装

需要Go 1.18才能成功安装。安装时,运行以下命令或从发布页面下载预编译的二进制文件。

CGO_ENABLED=1 go install github.com/projectdiscovery/katana/cmd/katana@latest

使用Docker方式:

docker pull projectdiscovery/katana:latest

使用Docker以标准模式运行Katana:

docker run projectdiscovery/katana:latest -u https://tesla.com

使用Docker以Headless模式运行Katana:

docker run projectdiscovery/katana:latest -u https://tesla.com -system-chrome -headless

使用

例举部分使用案例,完整参数选项。

Katana 是一款专注于自动化管道执行的快速爬虫工具,提供无头和非无头的爬取功能。用法:
katana [flags]标志:
输入:
-u, -list string[] 要爬取的目标 URL / 列表
-resume string 使用 resume.cfg 恢复扫描
-e, -exclude string[] 排除与指定过滤器匹配的主机('cdn', 'private-ips', cidr, ip, regex)配置:
-r, -resolvers string[] 自定义解析器列表(文件或逗号分隔)
-d, -depth int 最大爬取深度(默认 3)
-jc, -js-crawl 在 JavaScript 文件中启用端点解析/爬取
-jsl, -jsluice 在 JavaScript 文件中启用 jsluice 解析(内存密集型)
-ct, -crawl-duration value 最大爬取目标的持续时间(s, m, h, d)(默认 s)
-kf, -known-files string 启用已知文件的爬取(all,robotstxt,sitemapxml),最小深度为 3 以确保正确爬取所有已知文件。
-mrs, -max-response-size int 读取的最大响应大小(默认 9223372036854775807)
-timeout int 请求等待时间,单位秒(默认 10)
-aff, -automatic-form-fill 启用自动表单填充(实验性)
-fx, -form-extraction 在 jsonl 输出中提取表单、输入、textarea 和 select 元素
-retry int 重试请求的次数(默认 1)
-proxy string 要使用的 http/socks5 代理
-H, -headers string[] 以 header:value 格式在所有 http 请求中包含的自定义头部/cookie(文件)
-config string Katana 配置文件的路径
-fc, -form-config string 自定义表单配置文件的路径
-flc, -field-config string 自定义字段配置文件的路径
-s, -strategy string 访问策略(深度优先、广度优先)(默认"深度优先")
-iqp, -ignore-query-params 忽略具有不同查询参数的相同路径的爬取
-tlsi, -tls-impersonate 启用实验性客户端 hello (ja3) TLS 随机化
-dr, -disable-redirects 禁用跟随重定向(默认 false)调试:
-health-check, -hc 运行诊断检查
-elog, -error-log string 写入发送请求错误日志的文件无头:
-hl, -headless 启用无头混合爬取(实验性)
-sc, -system-chrome 使用本地安装的 Chrome 浏览器而不是 Katana 安装的
-sb, -show-browser 在无头模式下显示浏览器
-ho, -headless-options string[] 以附加选项启动无头 Chrome
-nos, -no-sandbox 在 --no-sandbox 模式下启动无头 Chrome
-cdd, -chrome-data-dir string 存储 Chrome 浏览器数据的路径
-scp, -system-chrome-path string 为无头爬取使用指定的 Chrome 浏览器
-noi, -no-incognito 在非隐身模式下启动无头 Chrome
-cwu, -chrome-ws-url string 使用在此 URL 上侦听调试器的其他地方启动的 Chrome 浏览器实例
-xhr, -xhr-extraction 在 jsonl 输出中提取 xhr 请求 url 和方法被动:
-ps, -passive 启用被动源以发现目标端点
-pss, -passive-source string[] 用于 URL 发现的被动源(waybackarchive,commoncrawl,alienvault)范围:
-cs, -crawl-scope string[] 爬虫应遵循的范围内 URL 正则表达式
-cos, -crawl-out-scope string[] 爬虫应排除的范围外 URL 正则表达式
-fs, -field-scope string 预定义的范围字段(dn,rdn,fqdn)或自定义正则表达式(例如,'(company-staging.io|company.com)')(默认"rdn")
-ns, -no-scope 禁用基于主机的默认范围
-do, -display-out-scope 显示从范围内爬取的外部端点过滤:
-mr, -match-regex string[] 要在输出 URL 上匹配的正则表达式或正则表达式列表(cli, file)
-fr, -filter-regex string[] 要在输出 URL 上过滤的正则表达式或正则表达式列表(cli, file)
-f, -field string 要在输出中显示的字段(url,path,fqdn,rdn,rurl,qurl,qpath,file,ufile,key,value,kv,dir,udir)
-sf, -store-field string 要在每个主机输出中存储的字段(url,path,fqdn,rdn,rurl,qurl,qpath,file,ufile,key,value,kv,dir,udir)
-em, -extension-match string[] 匹配给定扩展名的输出(例如, -em php,html,js)
-ef, -extension-filter string[] 过滤给定扩展名的输出(例如, -ef png,css)
-mdc, -match-condition string 使用 DSL 条件匹配响应
-fdc, -filter-condition string 使用 DSL 条件过滤响应速率限制:
-c, -concurrency int 要使用的并发获取器数量(默认 10)
-p, -parallelism int 要处理的并发输入数量(默认 10)
-rd, -delay int 每个请求之间的请求延迟,单位秒
-rl, -rate-limit int 每秒最大请求数(默认 150)
-rlm, -rate-limit-minute int 每分钟最大请求数更新:
-up, -update 更新 Katana 到最新版本
-duc, -disable-update-check 禁用自动 Katana 更新检查输出:
-o, -output string 写入输出的文件
-sr, -store-response 存储 HTTP 请求/响应
-srd, -store-response-dir string 将 HTTP 请求/响应存储到自定义目录
-or, -omit-raw 从 jsonl 输出中省略原始请求/响应
-ob, -omit-body 从 jsonl 输出中省略响应正文
-j, -jsonl 以 jsonl 格式写入输出
-nc, -no-color 禁用输出内容着色(ANSI 转义码)
-silent 仅显示输出
-v, -verbose 显示详细输出
-debug 显示调试输出
-version 显示项目版本

单一 URL 输入

katana -u <https://example.com>

多 URL 输入

katana -u <https://example.com>,<https://another-example.com>

列表文件输入

katana -list url_list.txt

通过 STDIN 输入

echo <https://example.com> | katana

无头模式

katana -u <https://example.com> -headless

域名关键字范围控制

katana -u <https://example.com> -fs dn

设定爬取深度

katana -u <https://example.com> -d 5

已知文件爬取

katana -u <https://example.com> -kf robotstxt,sitemapxml

扩展名过滤

katana -u <https://example.com> -silent -ef css,txt

输出为 JSONL 文件

katana -u <https://example.com> -jsonl -o output.jsonl

存储请求和响应

katana -u <https://example.com> -sr

作为Golang三方库使用

package mainimport ("math""github.com/projectdiscovery/gologger""github.com/projectdiscovery/katana/pkg/engine/standard""github.com/projectdiscovery/katana/pkg/output""github.com/projectdiscovery/katana/pkg/types"
)func main() {options := &types.Options{MaxDepth:     3,             // Maximum depth to crawlFieldScope:   "rdn",         // Crawling Scope FieldBodyReadSize: math.MaxInt,   // Maximum response size to readTimeout:      10,            // Timeout is the time to wait for request in secondsConcurrency:  10,            // Concurrency is the number of concurrent crawling goroutinesParallelism:  10,            // Parallelism is the number of urls processing goroutinesDelay:        0,             // Delay is the delay between each crawl requests in secondsRateLimit:    150,           // Maximum requests to send per secondStrategy:     "depth-first", // Visit strategy (depth-first, breadth-first)OnResult: func(result output.Result) { // Callback function to execute for resultgologger.Info().Msg(result.Request.URL)},}crawlerOptions, err := types.NewCrawlerOptions(options)if err != nil {gologger.Fatal().Msg(err.Error())}defer crawlerOptions.Close()crawler, err := standard.New(crawlerOptions)if err != nil {gologger.Fatal().Msg(err.Error())}defer crawler.Close()var input = "https://www.hackerone.com"err = crawler.Crawl(input)if err != nil {gologger.Warning().Msgf("Could not crawl %s: %s", input, err.Error())}
}

总结

Katana 是一个功能强大且易于使用的网页爬虫工具,适用于各种数据采集和网站监控任务。其高效的性能和先进的无头浏览技术使其成为处理动态网站内容的理想选择。无论是安全研究人员、数据分析师还是网站管理员,都可以通过 Katana 来实现他们的数据采集需求。

项目地址

https://github.com/projectdiscovery/katana

 一个使用 Golang 编写的新一代网络爬虫框架,支持JS动态内容爬取 - BTool博客 - 在线工具软件,为开发者提供方便

相关文章:

一个使用 Golang 编写的新一代网络爬虫框架,支持JS动态内容爬取

大家好&#xff0c;今天给大家分享一个由ProjectDiscovery组织开发的开源“下一代爬虫框架”Katana&#xff0c;旨在提供高效、灵活且功能丰富的网络爬取体验&#xff0c;适用于各种自动化管道和数据收集任务。 项目介绍 Katana 是 ProjectDiscovery 精心打造的命令行界面&…...

mycat介绍与操作步骤

文章目录 1.分库分表2.mycat 入门2.1 概述2.2 案例&#xff1a;水平分表1&#xff09;准备工作2&#xff09;配置3&#xff09;启动并测试 3.mycat 配置详解3.1 schema.xml3.2 rule.xml3.3 server.xml 4.mycat 分片&#xff1a;垂直拆分1&#xff09;准备工作2&#xff09;配置…...

【Go】:图片上添加水印的全面指南——从基础到高级特性

前言 在数字内容日益重要的今天&#xff0c;保护版权和标识来源变得关键。为图片添加水印有助于声明所有权、提升品牌认知度&#xff0c;并防止未经授权的使用。本文将介绍如何用Go语言实现图片水印&#xff0c;包括静态图片和带旋转、倾斜效果的文字水印&#xff0c;帮助您有…...

R语言的语法糖

R语言的语法糖 引言 在编程语言中&#xff0c;所谓的“语法糖”是指那些使得程序员能够以更简洁、直观的方式书写代码的语法形式。R语言作为一种用于统计分析和数据可视化的编程语言&#xff0c;具有丰富的功能和灵活的语法。本文将深入探讨R语言中的语法糖&#xff0c;帮助读…...

乙游的尽头是虚拟偶像吗?

眼花了&#xff0c;竟然看到二次元乙游男主角走红毯了。 12月20日&#xff0c;某国际知名奢侈品品牌宣布&#xff0c;《恋与深空》四位男主将受邀出席品牌在上海举办的TF戏瘾之夜活动&#xff0c;并公开了四位男主的红毯照片。 没有真人实体的乙游男主走红毯&#xff1f;这是…...

【源码+文档+调试讲解】农产品研究报告管理系统

摘 要 农产品研究报告管理系统是一个旨在收集、整理、存储和分析农产品相关研究数据的综合性平台。农产品研究报告管理系统通常包含一个强大的数据库&#xff0c;它能够处理大量的研究数据&#xff0c;并对这些数据进行有效的管理和备份。农产品研究报告管理系统是现代农业科学…...

SQL UNION 操作符

SQL UNION 操作符 SQL UNION 操作符用于合并两个或多个 SELECT 语句的结果集。它将多个结果集组合成一个单独的结果集&#xff0c;并去除重复的行。为了使用 UNION&#xff0c;每个 SELECT 语句必须具有相同的列数&#xff0c;并且对应列的数据类型必须兼容。 语法 SELECT c…...

springboot vue uniapp 仿小红书 1:1 还原 (含源码演示)

线上预览: 移动端 http://8.146.211.120:8081/ 管理端 http://8.146.211.120:8088/ 小红书凭借优秀的产品体验 和超高人气 目前成为笔记类产品佼佼者 此项目将详细介绍如何使用Vue.js和Spring Boot 集合uniapp 开发一个仿小红书应用&#xff0c;凭借uniapp 可以在h5 小程序 app…...

扩散模型学习

扩散模型学习 DDPM&#xff08;参考1&#xff09; DDIM&#xff08;参考1&#xff0c;参考2&#xff09;...

【面试】MySQL 最左匹配原则

MySQL的最左匹配原则是在使用联合索引时非常重要的概念&#xff0c;理解并合理运用该原则能显著提升查询性能。以下从多个方面详细介绍&#xff1a; 1. 联合索引结构基础 联合索引是对多个列创建的索引。在MySQL中&#xff0c;联合索引以多列值的组合形式&#xff0c;按照创建…...

Mac 删除ABC 输入法

参考链接&#xff1a;百度安全验证 Mac下删除系统自带输入法ABC&#xff0c;正解&#xff01;_mac删除abc输入法-CSDN博客 ABC 输入法和搜狗输入法等 英文有冲突~~ 切换后还会在英文状态&#xff0c;可以删除 &#xff1b;可能会对DNS 输入有影响&#xff0c;但是可以通过复…...

Nginx代理同域名前后端分离项目的完整步骤

前后端分离项目&#xff0c;前后端共用一个域名。通过域名后的 url 前缀来区别前后端项目。 以 vue php 项目为例。直接上 server 模块的 nginx 配置。 server{ listen 80; #listen [::]:80 default_server ipv6onlyon; server_name demo.com;#二配置项目域名 index index.ht…...

21、Transformer Masked loss原理精讲及其PyTorch逐行实现

1. Transformer结构图 2. python import torch import torch.nn as nn import torch.nn.functional as Ftorch.set_printoptions(precision3, sci_modeFalse)if __name__ "__main__":run_code 0batch_size 2seq_length 3vocab_size 4logits torch.randn(batch…...

CNN张量输入形状和特征图

CNN张量输入形状和特征图 这个是比较容易理解的张量的解释&#xff0c;比较直观 卷积神经网络 在这个神经网络编程系列中&#xff0c;我们正在逐步构建一个卷积神经网络&#xff08;CNN&#xff09;&#xff0c;所以让我们看看CNN的张量输入。 ​ ​ 在最后两篇文章中&…...

RK3399开发板Linux实时性改造

本次测试基于NanoPC-T4开发板&#xff08;国产化处理器RK3399&#xff09;&#xff0c;4.19.111内核Xenomai实时性改造测试。 Xenomai下载网站&#xff1a;https://xenomai.org/downloads/ NanoPC-T4网站&#xff1a;https://wiki.friendlyarm.com/wiki/index.php/NanoPC-T4/z…...

ASP.NET Core 中的高效后台任务管理

一、引言 在当今快速发展的 Web 开发领域&#xff0c;ASP.NET Core 凭借其卓越的性能、强大的功能和高度的灵活性&#xff0c;已然成为众多开发者构建现代 Web 应用程序的首选框架。它不仅能够高效地处理各种复杂的业务逻辑&#xff0c;还为开发者提供了丰富多样的工具和功能&…...

Spring Boot 2 学习指南与资料分享

Spring Boot 2 学习资料 Spring Boot 2 学习资料 Spring Boot 2 学习资料 在当今竞争激烈的 Java 后端开发领域&#xff0c;Spring Boot 2 凭借其卓越的特性&#xff0c;为开发者们开辟了一条高效、便捷的开发之路。如果你渴望深入学习 Spring Boot 2&#xff0c;以下这份精心…...

知识追踪模型DKT,DLKT详解及代码复现

定义与应用 知识追踪是一种 教育技术领域的重要方法 ,旨在通过分析学生的学习行为和表现,预测其掌握特定知识点的程度。这种方法的核心在于建立能够反映学习者认知状态的动态模型,从而实现对学生学习进度的实时监控和个性化指导。 DKT模型 DKT模型 是最早的知识追踪模型之…...

一类特殊积分的计算

一类特殊积分的计算 前言一、第一个引理二、第二个引理三、积分的计算后记 前言 今天讨论的这类积分是十分有趣的&#xff0c;在 Mathematics Stack Exchange 看见后&#xff0c;便打算在此将其中的计算过程完善一下。在本篇文章中&#xff0c;我们重点考虑求解如下积分&#…...

VScode 配置 C语言环境

遇到的问题集合 mingw官方下载网站&#xff08;https://sourceforge.net/projects/mingw-w64/files/&#xff09;更新之后&#xff0c;与网上大多数教程上写的界面不同了。 网上大多数教程让下载这个&#xff1a; 但是现在找不到这个文件。 写hello.c文件时&#xff0c;报错&…...

spring mvc源码学习笔记之十一

pom.xml 内容如下 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…...

小结:路由器和交换机的指令对比

路由器和交换机的指令有一定的相似性&#xff0c;但也有明显的区别。以下是两者指令的对比和主要差异&#xff1a; 相似之处 基本操作 两者都支持类似的基本管理命令&#xff0c;比如&#xff1a; 进入系统视图&#xff1a;system-view查看当前配置&#xff1a;display current…...

ffmpeg7.0 aac转pcm

#pragma once #define __STDC_CONSTANT_MACROS #define _CRT_SECURE_NO_WARNINGSextern "C" { #include "libavcodec/avcodec.h" }//缓冲区大小&#xff08;缓存5帧数据&#xff09; #define AUDIO_INBUF_SIZE 40960 /*name depthu8 8s16 …...

C#读取本地网络配置信息全攻略

一、引言 在当今数字化时代&#xff0c;网络已深度融入我们生活与工作的方方面面。对于软件开发而言&#xff0c;掌握本地计算机的网络配置信息显得尤为关键。想象一下&#xff0c;你正在开发一款网络诊断工具&#xff0c;需要精准定位网络连接问题&#xff0c;此时 IP 地址、…...

解决aerich init -t xx 报错ModuleNotFoundError: No module named ‘tomli_w‘

今天在学习fastapi的时候&#xff0c;发现一款数据库迁移工具&#xff0c;通过这个工具可以根据模型类来对数据库做出改变。 随跟着学: 在执行 aerich init -t settings.TORTOISE_ORM的时候&#xff0c; 彼其娘之。。 报了一些错误&#xff1a; Traceback (most recent ca…...

python检测gitlab中某个标签在一个月内添加和移除了多少次

可以通过 Python 脚本和 GitLab API 检测一个标签在一个月内被添加和移除的次数。以下是实现的步骤和示例代码&#xff1a; 步骤 获取 GitLab API 访问令牌&#xff1a;在 GitLab 中生成一个 Personal Access Token。设置时间范围&#xff1a;确定一个月的时间范围。调用 Git…...

学习模板之一

学习目标&#xff1a; 提示&#xff1a;这里可以添加学习目标 例如&#xff1a; 一周掌握 Java 入门知识 学习内容&#xff1a; 提示&#xff1a;这里可以添加要学的内容 例如&#xff1a; 搭建 Java 开发环境掌握 Java 基本语法掌握条件语句掌握循环语句 学习时间&#x…...

2025-微服务—SpringCloud-1~3

2025-微服务—SpringCloud 第一章、从Boot和Cloud版本选型开始说起1、Springboot版本2、Springcloud版本3、Springcloud Alibaba4、本次讲解定稿版 第二章 关于Cloud各种组件的停更/升级/替换1、微服务介绍2、SpringCloud是什么&#xff1f;能干吗&#xff1f;产生背景&#xf…...

centos7.6 安装nginx 1.21.3与配置ssl

1 安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel2 下载Nginx wget http://nginx.org/download/nginx-1.21.3.tar.gz3 安装目录 mkdir -p /data/apps/nginx4 安装 4.1 创建用户 创建用户nginx使用的nginx用户。 #添加www组 # groupa…...

PL/SQL语言的数据库交互

PL/SQL语言的数据库交互 引言 在当今的信息化时代&#xff0c;数据库管理系统&#xff08;DBMS&#xff09;在各行各业中扮演着至关重要的角色。为了高效地与数据库进行交互&#xff0c;许多程序员、数据库管理员和系统分析师选择使用PL/SQL&#xff08;Procedural Language/…...

ARP欺骗

文章目录 ARP协议ARP欺骗原理断网攻击ARP欺骗(不断网) ARP协议 在局域网中&#xff0c;网络传输的是帧&#xff0c;帧里面有目标主机的MAC地址。arp协议负责将IP地址解析成对应的MAC地址 ARP欺骗原理 即通过伪造IP地址和MAC地址实现ARP欺骗&#xff0c;能够在网络中产生大量…...

Genymotion配套VirtualBox所在地址

在 Genymotion打开虚拟机前需要先打开VirtualBox中的虚拟机 C:\Program Files\Oracle\VirtualBox\VirtualBox.exe 再开启genymotion中的虚拟机开关...

TPS61022 PFM的机制以及TPS61xxx转换器的PFM与PWM之间的负载阈值

引言 TI 的大多数 TPS61xxx 低压升压转换器都配备了 PSM&#xff08;省电模式&#xff09;&#xff0c;以帮助提高轻负载效率。但是&#xff0c;当它处于重负载状态时&#xff0c;输出纹波通常会高于 PWM。此外&#xff0c;PSM 和 PWM 之间的负载电流阈值不会直观地写入数据表中…...

1. npm 常用命令详解

npm 常用命令详解 npm&#xff08;Node Package Manager&#xff09;是 Node.js 的包管理工具&#xff0c;用于安装和管理 Node.js 应用中的依赖库。下面是 npm 的一些常用命令及其详细解释和示例代码。 镜像源 # 查询当前使用的镜像源 npm get registry# 设置为淘宝镜像源 …...

黑马linux入门笔记(01)初始Linux Linux基础命令 用户和权限 实用操作

B站 黑马程序员 的视频 BV1n84y1i7td 黑马程序员新版Linux零基础快速入门到精通&#xff0c;全涵盖linux系统知识、常用软件环境部署、Shell脚本、云平台实践、大数据集群项目实战等 增强自控力 冥想慢呼吸绿色锻炼充分休息减少决策次数优先做重要的事情(早晨)融入强自控群控…...

Markdown中甘特图的使用

Markdown中甘特图的使用 1. 前言2. 语法详解2.1 甘特图语法 3. 使用场景及实例4. 小结5. 其他文章快来试试吧&#x1f58a;️ Markdown中甘特图的使用 &#x1f448;点击这里也可查看 1. 前言 Markdown 的原生语法不支持绘制图形&#xff0c;但通过扩展模块&#xff0c;我们可…...

Django创建数据表、模型、ORM操作

1、创建项目 django-admin startproject PersonInfosProject 2、创建项目应用&#xff0c;进入PersonInfosProject文件夹&#xff0c;新建index应用&#xff0c;使用命令 cd PersonInfosProject python manage.py startapp 新建完成之后的目录结构 3、新建数据模型&#xf…...

No. 31 笔记 | Web安全-SQL手工注入技术学习 Part 2

一、研究背景 背景介绍 SQL注入是一种常见且高危的Web安全漏洞。攻击者可以通过构造恶意SQL查询语句来绕过验证机制&#xff0c;执行未授权操作&#xff0c;如获取敏感信息、篡改数据库内容甚至控制服务器。 研究内容 本笔记探讨以下数据库的手工注入技术&#xff1a; MySQLAc…...

Spring Boot中的扫描注解如何使用

在 Spring Boot 中&#xff0c;扫描注解是指通过注解来告诉 Spring 框架应该扫描哪些包、哪些类或哪些特定的组件&#xff0c;并将其作为 Spring 容器中的 bean 进行管理。Spring Boot 主要通过以下几种注解来实现自动扫描&#xff1a; ComponentScanSpringBootApplicationCom…...

用 Python 从零开始创建神经网络(十九):真实数据集

真实数据集 引言数据准备数据加载数据预处理数据洗牌批次&#xff08;Batches&#xff09;训练&#xff08;Training&#xff09;到目前为止的全部代码&#xff1a; 引言 在实践中&#xff0c;深度学习通常涉及庞大的数据集&#xff08;通常以TB甚至更多为单位&#xff09;&am…...

深入探讨 Vue.js 的动态组件渲染与性能优化

Vue.js 作为一款前端领域中备受欢迎的渐进式框架&#xff0c;以其简单优雅的 API 和灵活性受到开发者的喜爱。在开发复杂应用时&#xff0c;动态组件渲染是一项极其重要的技术&#xff0c;它能够在页面中动态地加载或切换组件&#xff0c;从而显著提升应用的灵活性与用户体验。…...

qml TextArea、TextEdit、TextField、TextInput的区别于联系

在 QML 中&#xff0c;TextArea、TextEdit、TextField 和 TextInput 都是用来接收用户输入的控件&#xff0c;但它们之间有一些区别和联系。 区别&#xff1a; TextArea&#xff1a;用于多行文本输入&#xff0c;可以接收多行文本输入。TextEdit&#xff1a;也用于多行文本输入…...

《探索 PC 端的开源神经网络多模态模型宝藏》

《探索 PC 端的开源神经网络多模态模型宝藏》 一、多模态模型&#xff1a;开启智能交互新纪元二、主流 PC 端开源多模态模型大赏1. Obsidian&#xff1a;轻量级多模态先锋2. GLM-Edge 系列&#xff1a;移动端与 PC 端的全能选手3. Minicpm-llama3-v2.6&#xff1a;紧凑高效的多…...

centos 搭建nginx+配置域名+windows访问

准备工作&#xff1a;一个完整的centos环境&#xff0c;nginx安装包(可以从官网下载)nginx: download 一&#xff1a;centos可能有精简版&#xff0c;部分环境没有相关依赖包&#xff0c; 需要检查以下项&#xff1a; 1.gcc检查&#xff1a;gcc -v&#xff08;回车后应当有版…...

docker的数据卷和自定义镜像

docker的数据卷&#xff1a; 容器与宿主机之间&#xff0c;或者容器和容器之间的数据共享&#xff08;目录&#xff09;。 创建容器的时间&#xff0c;通过指定目录&#xff0c;实现容器于宿主机之间&#xff0c;或者容器和容器之间的数据共享。 容器的生命周期有限&#xff0c…...

在 Linux 下Ubuntu创建同权限用户

我是因为不小心把最开始创建的用户的文件夹颜色搞没了&#xff0c;再后来全白用习惯了&#xff0c;就不想卸载了&#xff0c;像创建一个和最开始创建的用户有一样的权限可以执行sudo -i进入root一样的用户 如图这是最原始的样子 第一步 创建新用户&#xff0c;我这里是因为之前…...

计算机视觉算法实战——面部特征点检测

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​​​​​​​​​​​​​​​​ 1. 领域介绍✨✨ 面部特征点检测&#xff08;Facial Landmark Detection&#xff09;是计算机视觉中…...

电力场景红外测温图像均压环下的避雷器识别分割数据集labelme格式2436张1类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;2436 标注数量(json文件个数)&#xff1a;2436 标注类别数&#xff1a;1 标注类别名称:["arrester"] 每个类别标注的框数&am…...

4种革新性AI Agent工作流设计模式全解析

文章目录 导读&#xff1a;AI Agent的四种关键设计模式如下&#xff1a;1. 反思2. 工具使用3. 规划4. 多Agent协作 总结内容简介&#xff1a; 导读&#xff1a; AI Agent是指能够在特定环境中自主执行任务的人工智能系统&#xff0c;不仅接收任务&#xff0c;还自主制定和执行…...

C#基础 枚举 Enumeration从基础到进阶

目录 一、入门篇&#xff1a;枚举基础1. 枚举类型的定义2. 枚举类型的优点3. 枚举的基本使用3.1 枚举的类型转换3.2 遍历枚举成员3.3 判断枚举值是否有效3.4枚举的比较 4. 枚举的设计规范 二、深入底层篇&#xff1a;存储、值与继承限制1. 枚举的存储与表示2. 枚举底层类型选择…...