代码拉取完成,页面将自动刷新
package miniutils
import (
neturl "net/url"
"strings"
)
// GetUrlQueryValue 提取网址的查询字符串。即问号之后的部分。
func GetUrlQueryValue(key, url string) string {
if strings.Contains(url, `%2Fdp%2F`) {
url, _ = neturl.QueryUnescape(url)
}
urlSplit := strings.Split(url, `?`)
if len(urlSplit) != 2 {
return ""
}
queryString := urlSplit[1]
querySplit := strings.Split(queryString, `&`)
qValue := ""
for _, queryItem := range querySplit {
itemSplit := strings.Split(queryItem, `=`)
if itemSplit[0] == key {
qValue = itemSplit[1]
}
}
return qValue
}
// GetUrl. 获取Url链接全路径。常用于爬虫链接格式化。例: Get("/product?id=90", "https://www.site.com")
// url: startwith http, /, // ; base must startwith http
func GetUrl(url, base string) string {
if strings.Index(base, "http") != 0 {
panic("base must start with http. the base is : " + base)
}
if strings.Index(url, "http") == 0 {
return url
}
if strings.Index(url, "//") == 0 {
return strings.Split(base, "/")[0] + url
}
if strings.Index(url, "/") == 0 {
return GetBaseUrl(base) + url
}
if url != "" {
return GetBaseUrl(base) + "/" + url
}
return ""
}
// GetDomainByUrl. 获取url网址的域名。
// the arg url startwith http, //, / ; return like: "www.baidu.com", "baidu.com", ""
func GetDomainByUrl(url string) string {
urlS := strings.Split(url, "/")
if strings.Index(url, "http") == 0 || strings.Index(url, "//") == 0 {
return urlS[2]
}
if strings.Index(url, "/") == 0 {
return urlS[1]
}
return ""
}
// GetKeywordByDomain GetKeywordByDomain("www.baidu.com") -> baidu
func GetKeywordByDomain(domain string) string {
domain = strings.ToLower(domain)
domainSplit := strings.Split(domain, `.`)
if strings.Contains(domain, "www") {
return domainSplit[1]
}
return domainSplit[0]
}
// GetBaseUrl. GetBaseUrl("https://www.baidu.com/hello?word=hiiii") -> "https://www.baidu.com"
// url must starwith http; return like: https://www.baidu.com
func GetBaseUrl(url string) string {
if strings.Index(url, "http") != 0 {
panic("url must start with http. the url is : " + url)
}
urlS := strings.Split(url, "/")
return urlS[0] + "//" + urlS[2]
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。