我正在尝试使用GoColly框架获取所有HREF链接,但是 仅允许将任何域的URL用作根URL或SubDomains(否 路径)。我已经注释掉了我的REGEXP。文件扩展名不 物。我只是不想要在“ /”之后的任何内容。我尝试使用 变量“ Domain”和concat来构建“变量” regexp。甚至不确定 如果是这样的话。
whole.facebook.com/sdsd/dsd/as.txt虚假
// Main
package main
import (
"log"
"fmt"
"time"
//"regexp"
"net/http"
"github.com/gocolly/colly"
)
var Target string
var Domain string
func main() {
//r := regexp.MustCompile("(https:" + Domain + ".com)$")
c := colly.NewCollector(
//colly.URLFilters(r),
)
c.OnError(func(r *colly.Response, err error) {
fmt.Println(r.Request.URL, "Is Not Reachable", r.StatusCode)
})
// Find and visit all links
c.OnHTML("a", func(e *colly.HTMLElement) {
e.Request.Visit(e.Attr("href"))
})
c.OnRequest(func(r *colly.Request) {
Domain := r.URL.String()
Target := BannerGrab(Domain)
fmt.Println(Target)
fmt.Println("Dropping By.. ", r.URL)
time.Sleep(1000 * time.Millisecond)
})
c.Visit("https://www.twitter.com/")
}
//CheckDB if not listed else add
//RiskDB
//Email
func BannerGrab(s string) string {
client := &http.Client{}
req, err := http.NewRequest("GET", s, nil)
if err != nil {
log.Fatalln(err)
}
req.Header.Set("User-Agent", "Authac/0.1")
resp, _ := client.Do(req)
serverEntry := resp.Header.Get("Server")
return serverEntry
}
答案 0 :(得分:0)
可能的正则表达式为:
/ ^[^\/\\]+$ / gmi
任何时候只要文本中有“ \”或“ /”都不匹配。
答案 1 :(得分:0)
下面的正则表达式可以匹配仅包含域和子域且没有路径的URL,
r:= regexp.MustCompile(“(https | http)://(。*?)”)
要添加, colly.URLFilters 将仅抓取与模式匹配的URL。它也不会从完整URL创建与模式匹配的URL,然后进行爬网。