网页抓取qq( 下载非标准的包,下载方法及注意事项(二))
优采云 发布时间: 2021-09-18 21:01网页抓取qq(
下载非标准的包,下载方法及注意事项(二))
Golang抓取网页并分析网页中收录的链接
更新时间:2019年8月26日09:24:24作者:杨天晓
今天,小编将与大家分享一篇关于戈朗如何抓取网页并分析网页中收录的链接的文章,具有很好的参考价值,希望对大家有所帮助。让我们跟着小编看一看
1.下载非标准软件包,“/X/net/HTML”
2.install git first并使用git命令下载
git clone https://github.com/golang/net
3.将网络包放在goroot路径下
例如:
我的是:goroot=e:\go\
最后一个目录是:e:\go\SRC\\x\net
注意:如果没有和X文件夹,请创建它们
4.创建fetch目录并在其下创建main.go文件。main.go文件的代码内容如下:
package main
import (
"os"
"net/http"
"fmt"
"io/ioutil"
)
func main() {
for _, url := range os.Args[1:] {
resp, err := http.Get(url)
if err != nil {
fmt.Fprintf(os.Stderr, "fetch: %v\n", err)
}
b, err := ioutil.ReadAll(resp.Body)
resp.Body.Close()
if err != nil {
fmt.Fprintf(os.Stderr, "fetch: reading %s: %v\n", url, err)
os.Exit(1)
}
fmt.Printf("%s",b)
}
}
pile-fetch
go build test.com\justin\demo\fetch
注意:\Justin\demo\是我的项目路径。具体编译基于您自己的项目路径
6.executefetch.exe文件
fetch.exe
注意:这是要爬升的URL。如果配置正确,将打印URL的HTML内容。如果没有,请检查上述步骤是否正确
7.web页面已被捕获,因此剩下的工作是分析页面中收录的链接,创建findlinks目录,并在其下创建main.go文件。main.go文件的代码内容如下:
package main
import (
"os"
"fmt"
"golang.org/x/net/html"
)
func main() {
doc, err := html.Parse(os.Stdin)
if err != nil {
fmt.Fprint(os.Stderr, "findlinks: %v\n", err)
os.Exit(1)
}
for _, link := range visit(nil, doc) {
fmt.Println(link)
}
}
func visit(links []string, n *html.Node) []string {
if n.Type == html.ElementNode && n.Data == "a" {
for _, a := range n.Attr {
if a.Key == "href" {
links = append(links, a.Val)
}
}
}
for c := n.FirstChild; c != nil; c = c.NextSibling {
links = visit(links, c)
}
return links
}
pilefindlinks
go build test.com\justin\demo\findlinks
注意:\Justin\demo\是我的项目路径。具体编译基于您自己的项目路径
9.execute findlinks.exe文件
fetch.exe https://www.qq.com | findlinks.exe
>10.执行后结果:获得各种形式的超链接
上面关于golang如何捕获网页并分析网页中收录的链接的文章是小编共享的所有内容。我希望它能给你一个参考和支持脚本的房子