Go语言实战:基于Go1.19的站点模板爬虫技术解析与应用

news2024/11/17 12:06:22

一、引言

1.1 爬虫技术的背景与意义

在这里插入图片描述

在互联网高速发展的时代,数据已经成为新的石油,而爬虫技术则是获取这种“石油”的重要工具。爬虫,又称网络蜘蛛、网络机器人,是一种自动化获取网络上信息的程序。它广泛应用于搜索引擎、数据分析、自动化测试等多个领域,对于信息的获取和处理具有极高的价值。

随着互联网的不断发展,数据量也在急剧增长,传统的信息获取方式已经无法满足人们的需求。爬虫技术应运而生,它可以帮助我们高效、快速地获取大量信息,从而为各种业务场景提供数据支持。同时,爬虫技术也带来了一些挑战,如如何处理海量数据、如何保证爬取的合法性等。

1.2 Go语言在爬虫领域的优势

在这里插入图片描述

Go语言,又称为Golang,是由Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。Go语言在爬虫领域具有以下优势:

  1. 高并发:Go语言原生支持并发,这使得Go语言在开发爬虫时能够更加高效地处理大量并发请求,提高爬取速度。

  2. 性能优越:Go语言的性能接近C语言,这使得Go语言编写的爬虫在处理大规模数据时具有更高的效率。

  3. 跨平台:Go语言编译后的可执行文件无需依赖其他库,可以在不同平台上运行,这为爬虫的部署和运行提供了便利。

  4. 丰富的库生态:Go语言有着丰富的第三方库,这为爬虫开发提供了诸多便利,如网络请求处理、JSON解析等。

  5. 简洁明了:Go语言的语法简洁明了,易于学习和使用,这有助于提高开发效率。

二、Go1.19新特性概述

2.1 概述

Go1.19是Go语言的又一个重要版本,它带来了许多新特性和改进。这些新特性将进一步巩固Go语言在现代编程语言中的地位,为开发者提供更好的开发体验。

2.2 关键新特性介绍

以下是Go1.19的一些关键新特性:

  1. 泛型:Go1.19引入了泛型编程支持,允许在函数和类型定义中使用类型参数。这将有助于提高代码的复用性和可维护性。

  2. 结构体字段标签:Go1.19允许在结构体字段中使用标签(Tag),以便在反射(reflection)时获取更丰富的信息。

  3. 映射的迭代器:Go1.19为map类型提供了迭代器(iterator),使得遍历map变得更加便捷。

  4. 垃圾回收改进:Go1.19对垃圾回收机制进行了优化,以降低延迟和提高性能。

  5. 网络性能改进:Go1.19对TCP连接和HTTP/2性能进行了优化,提高了网络通信的效率。

  6. 跨平台编译:Go1.19增加了对Windows平台的支持,使得Go语言能够在更多平台上进行编译和运行。

2.3 Go1.19对爬虫开发的影响

Go1.19的新特性对爬虫开发产生了积极影响:

  1. 泛型:在爬虫开发中,经常需要处理不同类型的数据。Go1.19的泛型特性可以帮助我们编写更通用、更可复用的代码,提高开发效率。

  2. 结构体字段标签:在进行数据解析时,结构体字段标签可以帮助我们更方便地处理不同类型的数据,提高代码的可读性和可维护性。

  3. 映射的迭代器:在爬虫中,我们经常需要遍历和处理映射(如HTTP头信息)。Go1.19的映射迭代器特性使得这个过程更加简洁明了。

  4. 垃圾回收改进:Go1.19的垃圾回收优化有助于降低爬虫在长时间运行过程中可能出现的内存溢出风险。

  5. 网络性能改进:网络性能的优化有助于提高爬虫在处理大规模数据时的效率,降低延迟。

  6. 跨平台编译:跨平台编译特性的支持使得Go语言爬虫可以在不同平台上轻松部署和运行。

三、站点模板爬虫原理讲解

3.1 站点模板爬虫概念

站点模板爬虫(Template Spider)是一种基于特定模板的爬虫架构,它主要用于处理那些结构相似的网页。在这种爬虫中,我们将目标网站的页面结构抽象成模板,然后根据这个模板去解析和提取所需的数据。

站点模板爬虫的核心思想是将网页的结构提取出来,形成一个可复用的解析模型。这个模型不仅能够用于当前网站,还能够适应未来网站结构的变化。这样,即使目标网站的结构发生了变化,我们只需要更新模板即可,无需重新编写爬虫代码。

3.2 爬虫工作原理

在这里插入图片描述

站点模板爬虫的工作原理可以分为以下几个步骤:

  1. 初始化:启动爬虫,加载站点模板。

  2. 抓取页面:根据站点模板,发送HTTP请求,获取页面内容。

  3. 解析页面:分析页面内容,提取所需数据。

  4. 数据存储:将提取的数据存储到指定位置,如数据库、文件等。

  5. 模板更新:根据实际需求,更新站点模板。

  6. 循环执行:重复以上步骤,不断抓取新页面。

3.3 模板爬虫的优势与挑战

优势:

  1. 灵活性:模板爬虫可以轻松适应目标网站的结构变化,无需重新编写爬虫代码。

  2. 复用性:同一模板爬虫可以应用于多个类似的网站,提高开发效率。

  3. 易维护:模板爬虫的结构清晰,易于维护和扩展。

挑战:

  1. 复杂性:对于复杂网站,模板的提取和解析可能会变得非常复杂。

  2. 性能:模板爬虫在处理大量数据时,可能会遇到性能瓶颈。

  3. 依赖性:模板爬虫依赖于目标网站的结构,如果网站使用了过多的JavaScript动态加载内容,模板爬虫可能无法正常工作。

在了解了站点模板爬虫的原理之后,我们将进入下一部分,学习如何使用Go1.19实现一个基于站点模板的爬虫。

四、基于Go1.19的站点模板爬虫实战

4.1 项目搭建与工具选择

在进行实战之前,我们需要搭建一个Go语言的项目环境。这里我们推荐使用Go Modules来管理项目依赖。首先,确保您的开发环境已经安装了Go语言。

接下来,我们创建一个名为site-template-crawler的项目目录,并在该目录下创建以下文件:

  • main.go:爬虫的主程序
  • config.go:配置文件处理
  • parser.go:站点模板解析逻辑
  • model.go:数据模型定义
  • database.go:数据库操作逻辑
  • util.go:实用工具函数

在项目目录下执行以下命令来初始化项目依赖:

go mod init site-template-crawler

我们还需要选择合适的工具来辅助我们的爬虫工作。例如,对于HTTP请求处理,我们可以使用net/http标准库;对于JSON数据处理,可以使用encoding/json。此外,对于数据库操作,可以根据需求选择合适的数据库驱动,如database/sql

4.2 编写爬虫主程序

main.go中,我们将编写爬虫的主入口函数。这个函数将负责初始化配置、启动爬虫任务,并处理结果。

package main

import (
    "fmt"
    "site-template-crawler/config"
    "site-template-crawler/parser"
    "site-template-crawler/database"
    "site-template-crawler/util"
)

func main() {
    // 初始化配置
    config := config.NewConfig()

    // 连接数据库
    db, err := database.Connect(config.DatabaseConfig)
    if err != nil {
        util.LogError(fmt.Sprintf("Failed to connect database: %v", err))
        return
    }
    defer db.Close()

    // 解析站点模板
    templateParser := parser.NewTemplateParser(db)
    err = templateParser.Parse(config.TemplatePath)
    if err != nil {
        util.LogError(fmt.Sprintf("Failed to parse template: %v", err))
        return
    }

    // 启动爬虫任务
    crawler := NewCrawler(config, templateParser)
    crawler.Start()
}

4.3 实现站点模板解析

parser.go中,我们将实现站点模板的解析逻辑。这包括从模板文件中提取出爬取规则,以及如何根据这些规则来解析页面内容。

package parser

import (
    "fmt"
    "regexp"
    // 导入其他需要的包
)

type TemplateParser struct {
    db *database.Database
}

func NewTemplateParser(db *database.Database) *TemplateParser {
    return &TemplateParser{db: db}
}

func (tp *TemplateParser) Parse(templatePath string) error {
    // 读取模板文件并解析
    // 提取爬取规则
    // 存储到数据库
    return nil
}

4.4 爬取与数据抽取

crawler.go中,我们将实现爬虫的主要功能,包括发送HTTP请求、处理页面内容、抽取所需数据等。

package main

import (
    "fmt"
    "net/http"
    // 导入其他需要的包
)

type Crawler struct {
    config     *config.Config
    parser      *parser.TemplateParser
    client      *http.Client
    // 其他需要字段
}

func NewCrawler(config *config.Config, parser *parser.TemplateParser) *Crawler {
    return &Crawler{
        config:     config,
        parser:      parser,
        client:      &http.Client{},
        // 初始化其他字段
    }
}

func (c *Crawler) Start() {
    // 发送HTTP请求抓取页面
    // 解析页面并抽取数据
    // 存储数据到数据库
}

4.5 结果输出与处理

database.go中,我们将实现数据库的操作逻辑,包括连接数据库、执行SQL语句、处理数据存储等。

package database

import (
    "database/sql"
    "fmt"
    // 导入其他需要的包
)

func Connect(config Config) (*sql.DB, error) {
    // 连接数据库
    return nil, nil
}

func (db *SQLDB) InsertData(table string, data interface{}) error {
    // 插入数据到数据库
    return nil
}

在实现上述代码后,我们将拥有一个基于Go1.19的站点模板爬虫的基础框架。接下来,我们需要根据具体的需求来完善和优化爬虫的细节。这包括处理爬取过程中的异常、提高爬取效率、确保爬取的合法性等。通过对这些方面的优化,我们的站点模板爬虫将更加健壮和高效。

五、Go1.19在爬虫性能优化方面的应用

5.1 概述

Go1.19版本在性能优化方面做出了一些重要的改进,这些改进对于提升爬虫的性能具有重要意义。本文将介绍Go1.19在并发控制、内存管理和网络通信优化方面的应用,帮助读者了解如何利用这些新特性来优化爬虫性能。

5.2 并发控制

Go语言的原生并发支持是其一大特色,而Go1.19在并发控制方面并没有显著的新特性,但稳定性 和性能的改进对爬虫的并发处理仍有所帮助。例如,Go1.19对goroutine的调度器进行了优化,减少了上下文切换的开销,这有助于提高爬虫在多任务环境下的性能。

在爬虫中,并发控制主要体现在同时向多个目标站点发送请求以及处理多个请求结果的场景。合理的并发控制可以有效提升爬取效率,缩短整体执行时间。使用Go的sync包和channel可以有效地管理并发任务,确保数据处理的正确性和效率。

5.3 内存管理

Go1.19在内存管理方面的改进主要集中在垃圾回收机制上。垃圾回收器的性能得到了提升,对于大内存对象的处理更加高效,这有助于减少爬虫在处理大量数据时可能遇到的内存压力问题。

在爬虫中,内存管理是一个关键问题,特别是在处理大量网页和数据时。Go语言的垃圾回收机制可以帮助我们自动管理内存,减少内存泄漏的风险。此外,Go1.19对map的迭代器进行了优化,使得遍历大map时更加高效,这对于爬虫处理大量数据时的性能也有所帮助。

5.4 网络通信优化

Go1.19在网络通信方面引入了一些新特性和改进,例如net/httpServer类型现在支持配置ReadTimeoutWriteTimeout参数,这有助于我们更好地控制网络连接的读写时间,提升网络通信的效率。

对于爬虫来说,网络通信是核心部分,性能直接关系到爬取速度和成功率。Go1.19的网络通信优化可以让我们更有效地管理客户端和服务器的连接,减少因网络超时导致的爬取失败。

综上所述,Go1.19在并发控制、内存管理和网络通信优化方面的改进,为爬虫开发者提供了更多的性能提升空间。通过合理利用这些新特性,我们可以构建更加高效、稳定的爬虫应用。

六、实战案例解析:某电商平台模板爬虫

6.1 项目背景

随着电子商务的迅猛发展,电商平台上的商品信息更新迅速。为了获取这些信息,我们决定开发一个基于Go1.19的站点模板爬虫,用于抓取某电商平台的商品数据。

6.2 爬虫需求分析

在分析爬虫需求时,我们明确了以下目标:

  • 爬取商品的标题、价格、描述、图片等基本信息。
  • 支持多线程并发抓取,提高爬取效率。
  • 实现对页面结构变化的自动适应,保证爬虫的稳定性。
  • 将爬取的数据存储到数据库中,方便后续的数据分析和处理。

6.3 爬虫设计与实现

我们采用了基于站点模板的爬虫架构,使用Go1.19来开发。具体设计如下:

  • 使用net/http库来发送HTTP请求。
  • 使用regexp库来解析页面内容,提取商品信息。
  • 使用sync包来实现并发控制。
  • 使用database/sql库来操作数据库,存储爬取的数据。

在实现过程中,我们重点关注了以下方面:

  • 并发控制:通过sync.WaitGroupsync.Mutex来控制并发请求的数量,避免对目标服务器造成过大压力。
  • 页面解析:使用正则表达式来提取商品信息,同时保留足够的灵活性以应对页面结构的变化。
  • 数据存储:将商品信息存储到MySQL数据库中,使用database/sql库进行操作。

6.4 数据解析与处理

在解析和处理数据时,我们定义了一个结构体来表示商品信息,并使用encoding/json库将解析后的数据序列化为JSON格式。然后,我们将JSON数据插入到数据库中。

type Product struct {
    Title    string
    Price    float64
    Desc     string
    ImageURL string
}

// 解析商品信息并存储到数据库
func (c *Crawler) parseProduct(html string) (*Product, error) {
    // 使用正则表达式提取商品信息
    // 将提取的信息填充到Product结构体中
    // 使用json.Marshal将Product结构体序列化为JSON
    // 使用数据库操作将JSON数据插入到数据库中
    return nil, nil
}

6.5 测试与总结

在完成爬虫的开发后,我们对爬虫进行了全面的测试。我们测试了爬虫在正常情况下的性能,也测试了爬虫在面对页面结构变化时的适应能力。测试结果表明,我们的爬虫能够高效地爬取商品信息,并且能够自动适应页面结构的变化。

总结来说,通过使用Go1.19开发的站点模板爬虫,我们成功地实现了对某电商平台商品信息的抓取。Go1.19的高并发支持、内存管理和网络通信优化对我们的爬虫性能提升起到了重要作用。这次实战经历不仅加深了我们对Go语言的理解,也让我们积累了宝贵的爬虫开发经验。

七、基于Go1.19的站点模板爬虫安全与合规性

7.1 爬虫安全问题概述

在开发和使用站点模板爬虫时,我们需要考虑以下安全问题:

  • 服务器负载:大量并发请求可能导致目标服务器过载。
  • 隐私数据:爬虫可能会无意中抓取到用户的隐私数据。
  • 爬虫被封禁:频繁的请求可能会导致IP被封禁。
  • 数据质量:爬虫可能会抓取到错误的数据。

7.2 防范措施与最佳实践

为了应对上述安全问题,我们可以采取以下防范措施和最佳实践:

  • 控制并发数量:合理设置并发请求的数量,避免对目标服务器造成过大压力。
  • 遵守Robots协议:在爬虫中实现对Robots协议的检查,只爬取允许的页面。
  • 使用代理:使用代理服务器来隐藏真实IP地址,避免被封禁。
  • 数据验证:对爬取到的数据进行验证,确保数据的准确性和完整性。
  • 遵守法律法规:确保爬虫的使用符合当地的法律法规,尊重网站的版权和隐私政策。

7.3 合规性考虑与合规框架

在进行站点模板爬虫的开发和使用时,我们需要考虑以下合规性问题:

  • 数据使用:确保对爬取的数据的使用符合相关法律法规和数据保护政策。
  • 爬虫使用:确保爬虫的使用不违反目标网站的服务条款和使用政策。
  • 法律法规:遵守当地的法律法规,如数据保护法、反不正当竞争法等。

为了确保合规性,我们可以采取以下措施:

  • 法律咨询:在开发爬虫之前,咨询法律专家,了解相关的法律法规和合规要求。
  • 用户协议:在爬虫中加入用户协议,明确爬虫的使用条件和限制。
  • 数据保护:确保对爬取的数据进行加密和脱敏处理,保护用户隐私。

八、总结与展望

8.1 本文总结

本文通过实际代码案例详细讲解了基于Go1.19的站点模板爬虫的技术解析与应用。我们从站点模板爬虫的概念、爬虫工作原理、模板爬虫的优势与挑战、实战案例解析,以及安全与合规性等方面进行了全面的介绍。

我们重点讨论了Go1.19在并发控制、内存管理和网络通信优化方面的应用,并给出了一个某电商平台模板爬虫的实战案例。同时,我们也强调了爬虫开发中的安全问题和合规性考虑,提供了一些防范措施和最佳实践。

8.2 爬虫技术的发展趋势

爬虫技术随着互联网的发展而不断进步,未来的发展趋势包括:

  • 人工智能化:利用AI技术提高爬虫的智能化水平,使其能够更准确地理解和解析网页内容。
  • 分布式爬虫:采用分布式架构,提高爬虫的并发能力和抓取效率。
  • 数据挖掘与分析:结合数据挖掘和分析技术,从爬取的数据中提取更多有价值的信息。
  • 遵守法律法规:在开发和使用爬虫时,更加注重合规性,遵守相关的法律法规和道德规范。

8.3 Go语言在爬虫领域的未来展望

Go语言以其简洁、高效和并发性能而受到越来越多开发者的青睐。在爬虫领域,Go语言具有以下优势:

  • 高效性能:Go语言的编译速度快,执行效率高,适合处理高并发的爬虫任务。
  • 并发支持:Go语言的原生并发支持使得开发高效的并发爬虫变得简单。
  • 跨平台部署:Go语言的跨平台特性使得爬虫可以在不同的操作系统上轻松部署和运行。
  • 丰富的生态系统:Go语言拥有丰富的第三方库和工具,有助于快速搭建爬虫系统。

未来,随着Go语言的持续发展和生态系统进一步完善,我们有理由相信Go语言将在爬虫领域发挥更大的作用,为开发者提供更多的便利和可能性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1955888.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机械学习—零基础学习日志(高数14——函数极限概念)

零基础为了学人工智能,真的开始复习高数 后续的速度要加快了~!~~~!! 概念 如何理解 方法一:吴军老师——无穷小是一种动态概念 函数极限,更多表达的是一种动态趋势,而不是一种静态的数值。以…

linux脚本:自动检测的bash脚本,用于检查linux的系统性能

目录 一、要求 二、脚本介绍 1、脚本内容 2、解释 3、使用方法: (1)脚本文件 (2)赋予权限 (3)执行结果 三、相关命令介绍 1、top (1)定义 (2&…

Springboot 整合Elasticsearch

1 java操作ES方式 1.1 操作ES 9300端口(TCP) 但开发中不在9300进行操作 ES集群节点通信使用的也是9300端口如果通过9300操作ES,需要与ES建立长连接 可通过引入spring-data-elasticsearch:transport-api.jar不在9300操作原因:1.springboot版本不同&…

Hive多维分析函数——With cube、Grouping sets、With rollup

有些指标涉及【多维度】的聚合,大的汇总维度,小的明细维度,需要精细化的下钻。 grouping sets: 多维度组合,组合维度自定义;with cube: 多维度组合,程序自由组合,组合为…

学习react-Provider解决props需要层层传递问题

1.组件数据传递问题 数据传递:A(顶级组件)-》B组件(子组件)、C组件(孙子组件)…很多组件 这样得通过props层层传递到下面的组件 还有另一种解决方法,即通过全局对象来解决,使用Prov…

Android 10.0 framework默认沉浸式状态栏功能实现

1. 前言 在10.0的系统rom定制化开发中,在实现状态栏的某些定制化开发中,在某些产品需要实现沉浸式状态栏,就是需要app 能全屏显示同样也能显示状态栏,接下来就来分析下相关的功能实现 如图: 2.framework默认沉浸式状态栏功能实现的核心类 frameworks\base\core\java\andro…

SpringCloud+FastAPI 打造AI微服务

Nacos注册微服务 注册接口服务(java)和图像ocr服务(python) springcloud业务层 fastapi推理层 postman调用接口层,接口层再通过openfegin,调用注册在nacos上推理层的微服务 参考文章SpringCloudPython 混合微服务,如何打造AI分布式…

Python数值计算(13)

1. 数学知识 虽然在给定了N个点以后,通过这个点的最小幂多项式是确定的,但是表达方式可不止一种,例如前面提到的系数方式,根方式,还有插值的Lagrange形式等。这里介绍另外一种表达方式: 显然这个式子最高次…

p28 vs环境-C语言实用调试技巧

int main() { int i0; for(i0;i<100;i) { printf("%d",i); } } 1.Debug 和Release的介绍 Debug通常称为调试版本&#xff0c;它包含调试信息&#xff0c;并且不做任何优化&#xff0c;便于程序员调试程序。 Release称为发布版本&#x…

束搜索(与贪心、穷举对比)

一、贪心搜索 1、基于贪心搜索从Y中找到具有最高条件概率的词元&#xff0c;但贪心可能不是最优解 2、比如 &#xff08;1&#xff09;贪心&#xff1a;.5*.4*.2*.1.0024 &#xff08;2&#xff09;另外&#xff1a;.5*.3*.6*.6.0054 二、穷举搜索 &#xff08;1&#xff0…

网络协议二 : 使用Cisco Packet Traceer工具模拟网络环境

1. 安装 Cisco Packet Tracer 2. 两个pc直连 2.1 打开 packet tracer 软件&#xff0c;弄两个pc上去&#xff0c; 2.2 然后使用 线 将 两台PC链接起来&#xff0c;链接的时候&#xff0c;会使用线&#xff0c;如果你不知道用什么线&#xff0c;可以使用自动连接线 2.3 配置IP …

UDP程序设计

UDP协议概述 UDP&#xff0c;User Datagram Protocol&#xff0c;用户数据报协议&#xff0c;是一个简单的面向数据报(package-oriented)的传输层协议&#xff0c;规范为&#xff1a;RFC 768。 UDP提供数据的不可靠传递&#xff0c;它一旦把应用程序发给网络层的数据发送出去…

NumpyPandas:Pandas库(50%-100%)

目录 前言 一、排序 1.使用索引排序 2.使用变量值排序 二、计算新变量 1.新变量为常量 2.根据原变量新增列 3.基于一个原变量做函数运算 4.在指定位置插入新列 三、修改替换变量值 1.对应数值替换 2.指定范围替换 四、虚拟变量变换 五、数值变量分组 六、数据分组…

Anaconda目录

安装目录 Anaconda 在默认情况下会安装到 C:\ProgramData\Anaconda3&#xff0c;而 conda 环境和包会安装在 C:\Users\username\.conda\ 目录下。 备注&#xff1a;我是在windows下安装 的Anaconda。我的安装目录是C:\Program Files\Anaconda3 pkgs目录 在以上两个目录下都有…

QQ微信头像制图工具箱小程序纯前端源码

微信小程序源码&#xff0c;经测试QQ小程序也可以完美运行&#xff0c;所以给大家分享一下这个QQ微信头像制图工具箱小程序纯前端源码。 主要功能有文字九格、头像挂件生成、爆趣九宫格、形状九宫格、创意长图、情侣头像、猫狗交流器。 这个QQ微信小程序源码是纯前端的&#x…

隧道可视化:实时监控保障行车安全

通过图扑可视化实现隧道的实时监控、数据分析及智能报警系统&#xff0c;提供全面的隧道管理和决策支持&#xff0c;提升行车安全&#xff0c;优化维护策略&#xff0c;确保交通顺畅。

notepad++如何跨文件搜索(比如搜索某个目录里的文件)

notepad如何跨文件搜索&#xff08;比如搜索某个目录里的文件&#xff09; notepad的搜索结果一直是比较迷&#xff0c;搜出一堆乱七八糟的东西&#xff0c;明显是缓存了&#xff0c;文件已经改名了都还不被notepad意识到

文案创作用这四款AI写作神器,告别熬夜赶稿!

都说懒人有懒福&#xff0c;现在的工具也越来越便捷于我们的日常和办公等等各种场景当中&#xff0c;其中文案的撰写和创作上也是令人脑瓜子疼的事情&#xff0c;所以锁着人工智能的兴起&#xff0c;ai智能写作工具助力我们快速地写作适合的文章&#xff0c;一起来看看下面这四…

数据容器-小结

目录 一、数据容器特点比较 二、数据容器操作小结 1、通用序列操作 2、通用的转换操作 3、案例演示 一、数据容器特点比较 二、数据容器操作小结 1、通用序列操作 2、通用的转换操作 3、案例演示 1&#xff09;list([iterable])&#xff1a;转换成列表 str_a "…

ctfshow解题方法

171 172 爆库名->爆表名->爆字段名->爆字段值 -1 union select 1,database() ,3 -- //返回数据库名 -1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema库名 -- //获取数据库里的表名 -1 union select 1,group_concat(…