我在GO中创建了一个URL抓取器,并且有一个要抓取的URL列表.我向每个URL发送http.Get()个请求,并获得它们的响应.

resp,fetch_err := http.Get(url)

如何 for each Get请求设置自定义超时?(默认时间非常长,这使得我的抓取程序非常慢.)我希望我的抓取程序有一个大约40-45秒的超时时间,之后它应该返回"request timed out",并转到下一个URL.

我怎样才能做到这一点?

推荐答案

显然,在GO 1.3中,http.Client有超时字段

client := http.Client{
    Timeout: 5 * time.Second,
}
client.Get(url)

这对我来说已经成功了.

Go相关问答推荐

有没有更简单的方法在Go中编写这个逻辑?

语法-for循环中的initit陈述是否允许分配?

一种基于时间的Golang函数节制器

在Mac中使用uname获取处理器体系 struct 时,在为AMD64构建Go二进制时出现错误结果

租户GUID X的租户不存在self 邮箱帐户的租户(我是唯一的成员)

Go中的net.SplitHostPort(r.RemoteAddr)安全性

MaybeReadByte对通道的使用如何在Go中提供随机行为?

在GO中创建[]字符串类型的变量

GORM:一个表的两个外键

如何使用 go 读取 RDF xml 文件中的 XML 命名空间属性

Github Actions Go lambda 项目不同的 sha256sums

在 Golang 中查看目录是否可写的跨平台方式?

xml.Unmarshal 不支持的类型 struct

当填充通道的函数调用未嵌入 goroutine 时,为什么我会遇到死锁?

golang 中的可变参数函数

Golang Oauth2 服务帐户返回空刷新令牌字符串

如何将一片 map 转换为一片具有不同属性的 struct

Go 中的 HTTP 请求验证中间件

如何将多个切片打印为一个切片?

Golang API 的 HTTPS