V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  storyicon  ›  全部回复第 1 页 / 共 1 页
回复总数  12
2019-05-23 12:53:44 +08:00
回复了 storyicon 创建的主题 Go 编程语言 Gos: Armed Golang 💪
2019-05-23 12:18:14 +08:00
回复了 storyicon 创建的主题 Go 编程语言 Gos: Armed Golang 💪
@reus Looking forward to that day 😛
2019-05-23 11:06:37 +08:00
回复了 storyicon 创建的主题 Go 编程语言 Gos: Armed Golang 💪
@praynise Thank you for supporting the development of the open source community 😃
2019-05-23 11:04:28 +08:00
回复了 storyicon 创建的主题 Go 编程语言 Gos: Armed Golang 💪
@reus 很感谢你提到这点,这对我很有用(其实你可以提一个 issue 方便更多人看到它)。我注意到在 golang/go 的 master 分支上确实已经支持了“ GOPROXY 可以设置多个,用逗号分隔”这个特性,很高兴 Golang 对此作出了改进。
我目前开发使用的版本是 1.12.4,在官网 https://golang.google.cn/dl/最新的发布版本是 1.12.5,目前在这两个版本下,经过我的测试,GOPROXY 都还暂时不支持这个特性,如果包含逗号,将会提示 `invalid $GOPROXY setting: cannot have comma`。
在 master 分支的文档显示,只有在 GOPROXY 服务器返回 404 与 410 时,GOPROXY 才会使用逗号后面的下一个代理进行尝试,不幸的是,大多数主流的 GOPROXY (比如中国常用的 goproxy.io 、微软的 athens )在拉取储存库失败时,返回的是 500 Internal Server Error。这意味着,即使 Golang 的最新发行版支持了这个特性,在相当的一段时间里,可能仍然无法通过设置 GOPROXY=https://goproxy-address,direct 这样的方式,来解决在设置 GOPROXY 的情况下无法正常拉取私有储存库的问题。
如果上面内容有误,还请告知,可能几个小时后我将会把这个问题在 GOS 项目中以文档的形式叙述。
2019-05-22 18:59:39 +08:00
回复了 storyicon 创建的主题 Go 编程语言 Gos: Armed Golang 💪
@wweir sorry guy , there may be some misunderstanding.
2019-05-22 12:45:18 +08:00
回复了 storyicon 创建的主题 Go 编程语言 Gos: Armed Golang 💪
@Maboroshii 在使用 GOMODULE 时往往会出现 Internal Server Error 或 Timeout 等问题。
GOPROXY 能够在一定程度上解决在拉取诸如 golang.org/x 包的时候产生的超时问题,也可以在一定程度上解决由于项目改名、迁移、删除等原因导致的 404 问题。
但是需要注意的是,使用 GOPROXY 将导致你无法拉取私有储存库。
GOS 主要解决的是这个问题。
2019-05-22 12:44:24 +08:00
回复了 storyicon 创建的主题 Go 编程语言 Gos: Armed Golang 💪
@eslizn 使用场景不同
2019-05-22 12:43:56 +08:00
回复了 storyicon 创建的主题 Go 编程语言 Gos: Armed Golang 💪
@gamexg 与原生 GO 行为保持一致
2019-05-22 12:43:31 +08:00
回复了 storyicon 创建的主题 Go 编程语言 Gos: Armed Golang 💪
@wweir 此 proxy 非彼 proxy
2018-11-02 00:52:02 +08:00
回复了 storyicon 创建的主题 Python 深入浅出爬虫之道: Python 、Golang 与 GraphQuery 的对比
@xpresslink `css 样式替换文字` 具体是指什么呢
@ensonmj 系统性的爬虫架构在后端一般分为调度、下载、解析和分发入库四个模块,无论是动态网页还是静态网页都属于下载模块的内容,而 GraphQuery 是解析模块的一种通用解决方案。
对于动态网页,通常采用下面两种解决方案:
1. 抓包重放接口,通过接口获取数据
2. 使用无头浏览器设置 milestone 进行抓取
对于下载模块,已经有成熟通用的企业化解决方案,采用的是 ectd+grpc 的分布式架构,对于新手部署难度较大,在简化部署复杂程度后也会开源。
@stop9125 感谢支持!
1. 确实正如同 GraphQL 是 SQL 语句的包装, GraphQuery 是构建在众多成熟的文本解析语言上的, 但结构化的数据处理、更加容易上手、更加清晰的语法是一种发展的趋势,GraphQuery 不只实现了 xpath 和 css 的支持, 它还包括了正则表达式和处理 JSON 的 JSON PATH, 这使得它能应对几乎所有文本结构(虽然现在这可能只是一种期许)
2. 存库时采取什么样的结构已经不再 GraphQuery 要做的事情范围内了, 你可以把一个网站当做数据库, GraphQuery 是你的 SQL 语句, 使用它查询出的内容是结构化的, 你可以根据你的业务逻辑, 通过统一的方式将它得到的结果进行处理与存库, 就如同你使用分散的代码来解析 DOM 结构, 如果业务上有结构化储存需求, 还是需要先结构化再存储
3. GraphQuery 的迭代器能够根据语法确定你的迭代方式, 从而节省大量的结构处理逻辑, 文中的例子只是冰山一角, 具体可以在 GraphQuery-PlayGround 中体验
4. GraphQuery 在小规模的网站解析任务上可能无法对你产生足够的吸引, 但是如果你想要设计的是一个通用的爬虫系统, 使用 GraphQuery 可以让你事半功倍
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5347 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 18ms · UTC 08:31 · PVG 16:31 · LAX 00:31 · JFK 03:31
Developed with CodeLauncher
♥ Do have faith in what you're doing.