轻量Golang爬虫:带HTTP代理实现

简介: Golang爬虫仅用标准库即可高效运行。本文分两步演示:先实现无代理的百度首页抓取;再通过http.Transport配置HTTP代理,替换真实IP、降低封禁风险,保障隐私与稳定性。

Golang爬虫效率出众,且仅靠标准库就能实现。直接用真实IP爬取易被目标网站封禁,还会泄露自身隐私,配置HTTP代理可解决该问题——相当于让“中间人”代为发送请求,既掩盖真实IP,又降低被封风险。

2.jpg

第一步:无代理基础爬虫

核心功能:爬取百度首页HTML并打印到控制台,代码可直接运行。

Go

package main

import (

"fmt"

"io/ioutil"

"net/http"

)

func main() {

targetUrl := "https://www.baidu.com"

// 发送GET请求

resp, err := http.Get(targetUrl)

if err != nil {

    fmt.Println("请求失败:", err)

    return

}

defer resp.Body.Close() // 防止资源泄露,必写



// 读取并打印响应内容

body, err := ioutil.ReadAll(resp.Body)

if err != nil {

    fmt.Println("读取内容失败:", err)

    return

}

fmt.Println(string(body))

}

核心说明:

1.依赖Go标准库,无需额外安装包,go run 文件名.go即可运行。

2.defer resp.Body.Close()必须写,避免内存泄露。

3.运行成功后,控制台输出百度首页HTML代码。

第二步:添加HTTP代理

核心思路:通过http.Transport配置代理,传给http.Client,用自定义客户端发送请求。

Go

package main

import (

"fmt"

"io/ioutil"

"net/http"

"net/url"

)

func main() {

targetUrl := "https://www.baidu.com"

// 代理格式:带验证"http://用户名:密码@代理IP:端口",不带验证"http://代理IP:端口"

proxyStr := "http://username:password@proxyserver:port"



// 1. 解析代理地址

proxyURL, err := url.Parse(proxyStr)

if err != nil {

    fmt.Println("解析代理失败:", err)

    return

}



// 2. 配置带代理的传输对象

transport := &http.Transport{Proxy: http.ProxyURL(proxyURL)}



// 3. 创建自定义客户端(走代理)

client := &http.Client{Transport: transport}



// 4. 发送请求并读取内容

req, _ := http.NewRequest("GET", targetUrl, nil)

resp, err := client.Do(req)

if err != nil {

    fmt.Println("代理请求失败:", err)

    return

}

defer resp.Body.Close()


body, _ := ioutil.ReadAll(resp.Body)

fmt.Println(string(body))

}

核心说明:

1.需替换proxyStr为有效代理地址才能正常运行。

2.自定义http.Client是实现代理的关键,替代了默认的http.Get()。

3.Go 1.16+版本中,ioutil.ReadAll()可替换为os.ReadAll()(需导入"os"包)。

相关文章
|
10天前
|
缓存 负载均衡 安全
Nginx 反向代理:原理、优势与配置指南
Nginx反向代理是核心服务器架构技术,可实现请求转发、负载均衡、高可用与安全防护。它隐藏后端服务器,自动剔除故障节点,并支持SSL终止、缓存等高级功能,配置简洁灵活,广泛应用于高性能Web系统。
121 13
|
9天前
|
数据采集 Java Go
爬虫项目该选 Python 还是 Golang?看这篇就够了
本文对比Python与Golang在爬虫开发中的七大维度:语法简洁性、第三方库丰富度(如Scrapy vs Colly)、并发性能(Goroutine vs GIL限制)、内存占用、代码可读性、数据处理能力(Pandas等优势)及部署便捷性(Go可直接编译为跨平台二进制),助你按需选型。
|
12天前
|
开发者 UED
开发者必看:HTTP 2xx 响应码的正确理解与运用
HTTP 2xx状态码表示请求成功,涵盖200(成功)、201(已创建)、202(已接受)、204(无内容)和206(部分内容)五类。开发者需准确识别以优化调试与用户体验。
118 10
|
1月前
|
存储 缓存 调度
阿里云Tair KVCache仿真分析:高精度的计算和缓存模拟设计与实现
在大模型推理迈向“智能体时代”的今天,KVCache 已从性能优化手段升级为系统级基础设施,“显存内缓存”模式在长上下文、多轮交互等场景下难以为继,而“以存代算”的多级 KVCache 架构虽突破了容量瓶颈,却引入了一个由模型结构、硬件平台、推理引擎与缓存策略等因素交织而成的高维配置空间。如何在满足 SLO(如延迟、吞吐等服务等级目标)的前提下,找到“时延–吞吐–成本”的最优平衡点,成为规模化部署的核心挑战。
514 38
阿里云Tair KVCache仿真分析:高精度的计算和缓存模拟设计与实现
|
23天前
|
人工智能 JSON 数据可视化
【教案生成平台】实战教程三:打造智能 PPT 生成器 (AI + PptxGenJS)
一款基于 Vue 3 + Vite 的智能教学工具,利用 AI 自动生成结构化 PPT 数据,结合可视化编辑与本地持久化,实现高效备课。支持 JSON 模板解析、动态渲染导出(pptxgenjs)与草稿自动保存,大幅提升教师工作效率。在线体验:ytecn.com/teacher
211 16
|
1月前
|
设计模式 XML NoSQL
从HITL(Human In The Loop) 实践出发看Agent与设计模式的对跖点
本文探讨在ReactAgent中引入HITL(人机回路)机制的实践方案,分析传统多轮对话的局限性,提出通过交互设计、对话挂起与工具化实现真正的人机协同,并揭示Agent演进背后与工程设计模式(如钩子、适配器、工厂模式等)的深层关联,展望未来Agent的进化方向。
590 44
从HITL(Human In The Loop) 实践出发看Agent与设计模式的对跖点
|
24天前
|
人工智能 文字识别 自然语言处理
智能体来了:行政文员如何应用 AI 进行批量公文处理深度指南
本文深入解析AI智能体在批量公文处理中的核心架构与企业落地路径,涵盖智能解析、合规审查、自动排版分发等全流程。结合LLM语义理解与RPA自动化,实现效率提升超85%,合规检出率达98%。适用于政府、企业数字化转型实践,提供可复用的技术方案与实施指南。(238字)
258 6
|
7天前
|
弹性计算 人工智能 数据安全/隐私保护
2026年OpenClaw(原Clawdbot)阿里云快速部署+接入iMessage保姆级教程
2026年OpenClaw(前身为Clawdbot)凭借轻量化容器化架构、灵活的生态集成能力,成为跨平台智能助手的首选框架;阿里云提供的弹性计算资源与稳定的云端环境,为OpenClaw的7×24小时运行提供了坚实保障;而iMessage作为苹果生态核心的即时通讯工具,与OpenClaw的深度联动,可实现“iMessage发指令、AI自动化执行”的跨终端智能办公体验。本文基于2026年最新实测经验,从阿里云环境搭建、OpenClaw部署、iMessage接入配置到运维优化,提供包含完整代码命令的保姆级教程,零基础用户也能零失误完成部署与集成。
250 12
|
7天前
|
自然语言处理 API 数据安全/隐私保护
2026年OpenClaw(Clawdbot)部署保姆级指南+接入阿里云百炼API步骤流程
2026年OpenClaw(原Clawdbot/Moltbot)作为轻量化、高扩展性的AI助手框架,其核心价值在于通过对接各类大模型API实现多样化的智能任务处理。阿里云百炼作为国内领先的大模型服务平台,提供了丰富的模型选择、稳定的接口性能和企业级安全保障,将OpenClaw与阿里云百炼API集成,能让OpenClaw具备更强的自然语言理解、内容生成和任务执行能力。本文基于2026年最新版本实测,从环境准备、OpenClaw部署、阿里云百炼API配置到功能验证,提供包含完整代码命令的保姆级教程,零基础用户也能零失误完成配置。
433 10
|
5天前
|
机器学习/深度学习 自然语言处理 数据可视化
大模型应用:文本转语音实践:Tacotron2预训练模型和SpeechT5模型应用.19
本文详解Tacotron2与SpeechT5两大主流TTS模型:前者是经典序列到序列架构,语音质量高、原理清晰;后者为微软轻量统一模型,支持多语言、多说话人及语音克隆。内容涵盖原理、代码实战、音色定制与语速调节,适合初学者系统入门。
87 23