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

数据采集分享--爬⾍基础知识

爬⾍⼤体上分为两种类型,⼀种是爬取⽹页源码,另⼀种是模拟请求API获取数据。今天我们主要是介绍的是后者,直接向⽹站后台的API发送请求。

什么是API

API(应⽤程序接口 Application Programming Interface)是⼀组⽤于构建和集成应⽤软件的定义和协议。它充当两个程序之间的“中间⼈”,想象你去⼀家餐厅吃饭,你想要吃到好吃的菜品,不可能直接⾛进后厨去⾃⼰做饭,⽽是打开菜单去点单,等后厨做好了送到你⼿上。

如何进⾏爬⾍

前⾯直播中,我们学习了如何编写代码发送请求

请求的基本步骤简单总结⼀下

1.明确请求地址和请求⽅法

2.携带必要的请求参数

3.处理请求头

4.发送请求并接收响应

5.解析响应内容并根据需求进⾏处理

上⼿前还需要了解什么

JSON

JSON(JavaScript Object Notation),是轻量级的数据交换格式,它可读性强、结构清晰,⽬

前⼏乎所有编程语⾔都能解析JSON

API返回的数据通常都是JSON,所以学习爬⾍前,我们需要了解JSON格式,学会如何解析

JSON基本组成

对象(Object)

⽤⼤括号包裹,数据以键值对的形式存在

数组(Array)

⽤中括号包裹,⾥⾯可以有多个元素

值(Value)

值可以是各种数据类型

⼀个简单的JSON格式返回体

{ "city": "Wuhan", "temperature": 26, "forecast": [ {"date": "2025-09-20", "high": 25, "low": 19, "condition": "Cloudy"}, {"date": "2025-09-21", "high": 23, "low": 22, "condition": "Rainy"} ] }

go语⾔操作JSON

Go内置了encoding/json包,可以很⽅便地处理JSON

结构体映射

结构体(struct)是Go⽤来定义复杂数据类型的⽅式,JSON数据可以和Go结构体⼀⼀对应

⼀个简单的⽰例

定义这个结构体(注意字段⾸字母⼤写),并在标签⾥给出与之对应的json字段名。

​ type UserMessage struct{ ​ Username string `json:"name"` ​ Password string `json:"password"` ​ }

Marshal

通过json.Marshal我们可以将Go的数据结构(结构体,map等)序列化成JSON格式的字节切

函数签名

func Marshal(v interface{})([]byte,error)

Unmarshal

通过json.Unmarshal我们可以将JSON字节切⽚解析为Go数据结构

函数签名

func Unmarshal(data []byte,v interface{})error

了解这两种基本的⽅法,我们就可以简单的处理请求体和响应体了

Cookie

Cookie是⽹站存储在⽤户浏览器⾥的⼩块数据,它记录⽤户的状态信息(是否已经登录等)。

Cookie⼀般被放在请求头⾥,可以⽤来帮助⽹站判断你的登录状态。

req.Header.Set("Cookie", "sessionid=abc123")

⽽爬⾍中,获取并在后续请求上带上正确的Cookie,就可以像真实⽤户⼀样访问数据

http://www.jsqmd.com/news/621957/

相关文章:

  • Phi-4-reasoning-vision-15B多场景实践:研发/测试/产品/运营人员协同使用
  • S2-Pro数据库智能问答系统:基于自然语言的SQL生成与优化
  • 从零到一:利用ThinkPHP漏洞实现RCE攻击实战解析
  • 告别网络依赖:聊聊鸿蒙Flutter混合开发中,离线语音交互的几种实现方案与选型思考
  • 微软TTS神器VibeVoice上手实测:一键生成多角色对话,效果惊艳
  • IC617 Virtuoso环境配置与SMIC18MMRF工艺库加载全流程解析
  • 智能语音技术(七)
  • 免费且强大!QWEN-AUDIO智能语音合成系统体验报告:从部署到创意应用
  • C++高性能客户端开发:直接调用Pixel Script Temple的ONNX运行时
  • 金融行业AI落地:风控、投顾、合规三大核心场景实战
  • intv_ai_mk11参数详解教程:max_length=2048如何影响长文档总结完整性与截断风险
  • Django REST Framework 中实现用户资料更新的完整实践指南
  • EcomGPT-7B电商大模型一键部署教程:3步搞定Linux系统环境配置
  • Qwen3.5-4B模型Node.js环境配置与项目初始化一键脚本生成
  • 提示词零样本和少样本分析对比
  • 什么是张量库
  • Wan2.2-I2V-A14B多场景落地:高校思政课教学动画智能生成平台
  • 重装系统后的第一件事:部署你的专属AIGC绘画工具
  • 用Multisim搞定LM324带通滤波器:从理论计算到仿真调试的完整避坑指南
  • NEURAL MASK幻镜零基础教程:无需PS经验,3分钟掌握专业级主体剥离
  • IntellIJ Idea 高效迁移 Eclipse 项目的关键步骤与实战技巧
  • 音乐社交网络分析:CCMusic在用户画像中的应用
  • Qwen-Image-Edit进阶教程:使用LangChain构建复杂编辑工作流
  • Phi-4-mini-reasoning保姆级教程:10分钟完成WSL2环境下的模型一键部署
  • CentOS7.9安装Docker踩坑实录:fuse-overlayfs报错终极解决方案
  • 如何使用EXCELL批量生成SQL,使用单元格变量
  • sparse4d记录
  • HTML怎么限制输入字符数_HTML input maxlength属性用法【详解】
  • 来自椭圆曲线算术非平凡性的 CMB 低阶谱对数周期调制(世毫九实验室原创理论)
  • C 语言文件操作 / C++ 文件操作 / Linux 系统调用文件操作 全部带完整代码、注释、运行说明。