Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
linuxlibs
Golang_multi_version_manager_g
提交
0650e245
G
Golang_multi_version_manager_g
项目概览
linuxlibs
/
Golang_multi_version_manager_g
7 个月 前同步成功
通知
17
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Golang_multi_version_manager_g
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
0650e245
编写于
7月 03, 2020
作者:
V
voidint
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixbug: 因golang官网网页HTML元素变动,导致无法正常下载安装包。#33
上级
bbeedd24
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
4 deletion
+16
-4
version/collector.go
version/collector.go
+16
-4
未找到文件。
version/collector.go
浏览文件 @
0650e245
...
@@ -3,6 +3,7 @@ package version
...
@@ -3,6 +3,7 @@ package version
import
(
import
(
"fmt"
"fmt"
"net/http"
"net/http"
stdurl
"net/url"
"strings"
"strings"
"github.com/PuerkitoBio/goquery"
"github.com/PuerkitoBio/goquery"
...
@@ -38,14 +39,21 @@ func (e *URLUnreachableError) Error() string {
...
@@ -38,14 +39,21 @@ func (e *URLUnreachableError) Error() string {
// Collector go版本信息采集器
// Collector go版本信息采集器
type
Collector
struct
{
type
Collector
struct
{
url
string
url
string
doc
*
goquery
.
Document
pURL
*
stdurl
.
URL
doc
*
goquery
.
Document
}
}
// NewCollector 返回采集器实例
// NewCollector 返回采集器实例
func
NewCollector
(
url
string
)
(
*
Collector
,
error
)
{
func
NewCollector
(
url
string
)
(
*
Collector
,
error
)
{
pURL
,
err
:=
stdurl
.
Parse
(
url
)
if
err
!=
nil
{
return
nil
,
err
}
c
:=
Collector
{
c
:=
Collector
{
url
:
url
,
url
:
url
,
pURL
:
pURL
,
}
}
if
err
:=
c
.
loadDocument
();
err
!=
nil
{
if
err
:=
c
.
loadDocument
();
err
!=
nil
{
return
nil
,
err
return
nil
,
err
...
@@ -71,9 +79,13 @@ func (c *Collector) findPackages(table *goquery.Selection) (pkgs []*Package) {
...
@@ -71,9 +79,13 @@ func (c *Collector) findPackages(table *goquery.Selection) (pkgs []*Package) {
table
.
Find
(
"tr"
)
.
Not
(
".first"
)
.
Each
(
func
(
j
int
,
tr
*
goquery
.
Selection
)
{
table
.
Find
(
"tr"
)
.
Not
(
".first"
)
.
Each
(
func
(
j
int
,
tr
*
goquery
.
Selection
)
{
td
:=
tr
.
Find
(
"td"
)
td
:=
tr
.
Find
(
"td"
)
href
:=
td
.
Eq
(
0
)
.
Find
(
"a"
)
.
AttrOr
(
"href"
,
""
)
if
strings
.
HasPrefix
(
href
,
"/"
)
{
// relative paths
href
=
fmt
.
Sprintf
(
"%s://%s%s"
,
c
.
pURL
.
Scheme
,
c
.
pURL
.
Host
,
href
)
}
pkgs
=
append
(
pkgs
,
&
Package
{
pkgs
=
append
(
pkgs
,
&
Package
{
FileName
:
td
.
Eq
(
0
)
.
Find
(
"a"
)
.
Text
(),
FileName
:
td
.
Eq
(
0
)
.
Find
(
"a"
)
.
Text
(),
URL
:
td
.
Eq
(
0
)
.
Find
(
"a"
)
.
AttrOr
(
"href"
,
""
)
,
URL
:
href
,
Kind
:
td
.
Eq
(
1
)
.
Text
(),
Kind
:
td
.
Eq
(
1
)
.
Text
(),
OS
:
td
.
Eq
(
2
)
.
Text
(),
OS
:
td
.
Eq
(
2
)
.
Text
(),
Arch
:
td
.
Eq
(
3
)
.
Text
(),
Arch
:
td
.
Eq
(
3
)
.
Text
(),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录