logo
当前位置:首 页 > 编程技术 >后端开发 >Go > 查看文章

golang抓取页面信息

Go, 后端开发, 编程技术 你是第21个围观者 0条评论 供稿者: 标签:

最近在用golang做一个监听网站状态的应用,分享下各种代码

 

首先是监听完整的状态,看下服务器是否返回了预设值之外的状态:

Golang 获取http状态码

 

golang语言在提交了get或post请求后,服务器会返回一个请求结果,那么想要获取http响应的状态码就可以使用res.StatusCode来获得一个整型的状态值

 

package main
 
//获取http状态码
 
import (
	"fmt"
	"net/http"
	"net/url"
)
 
func main() {
	u, _ := url.Parse("http://www.baidu.com")
	q := u.Query()
	u.RawQuery = q.Encode()
	res, err := http.Get(u.String())
	if err != nil {
		fmt.Println("0")
		return
	}
	resCode := res.StatusCode
	res.Body.Close()
	if err != nil {
		fmt.Println("0")
		return
	}
	fmt.Printf("%d\r\n", resCode)
}

 

 

状态正常了,需要获取页面的信息。例如看看关键词有没有配置,标题有没有被篡改《做网站清理病毒木马的伙伴们应该知道木马就是靠篡改数据来盈利获取流量的》等等;

 

goQuery 的使用【这是一款和js的jquery一样好用的获取页面节点的插件】

 

 

简介
goquery为Go语言带来了类似于jQuery的语法和一组特性。它基于Go的net/html包和CSS Selector库cascadia。由于net/html解析器返回节点,而不是功能齐全的DOM树,因此jQuery的有状态操作函数(如height(),css(),detach())已经停止。

此外,因为net/html解析器需要UTF-8编码,所以goquery也是如此:调用者有责任确保源文档提供UTF-8编码的HTML。

 

func main() {
	html := `<body>
				<div lang="zh">DIV1</div>
				<span>
					<div>DIV5</div>
				</span>
 
			</body>
			`
 
	dom,err:=goquery.NewDocumentFromReader(strings.NewReader(html))
	if err!=nil{
		log.Fatalln(err)
	}
 
	dom.Find("div,span").Each(func(i int, selection *goquery.Selection) {
		fmt.Println(selection.Html())
	})

 

详细的可以看这个老哥的文章  goQuery 的使用

 

 

这些都好了,需要将数据json打包下推荐一个好用的网站:

json转golang

这个老哥的网站不止这些,挺好用的工具,大家可以看看

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

说说梦想,谈谈感悟 ,聊聊技术,有啥要说的来github留言吧 https://github.com/cjx2328

—— 陈 建鑫

陈建鑫
你可能也喜欢Related Posts
footer logo
未经许可请勿自行使用、转载、修改、复制、发行、出售、发表或以其它方式利用本网站之内容。站长联系:cjx2328#126.com(修改#为@)
Copyright ©ziao Studio All Rights Reserved. E-mail:cjx2328#126.com(#号改成@) 沪ICP备14052271号-3