go语言处理html文件,golang解析html网页的方法

1.先看一下整个结构:

e9420a9227323ce3f2ca68f38be87265.png

主要是web和html目录,分别存放go代码和html相关的资源文件。

2.html代码比较简单,代码如下:

Go web

girl.jpg

用户名:

密码:

就是显示一张图片,然后加登陆表单。

3.而go代码也比较简单,如下:

package main

import (

"fmt"

"html/template"

"log"

"net/http"

)

func login(w http.ResponseWriter, r *http.Request) {

r.ParseForm()

if r.Method == "GET" {

t, err := template.ParseFiles("html/login.html")

if err != nil {

fmt.Fprintf(w, "parse template error: %s", err.Error())

return

}

t.Execute(w, nil)

} else {

username := r.Form["username"]

password := r.Form["password"]

fmt.Fprintf(w, "username = %s, password = %s", username, password)

}

}

func main() {

http.HandleFunc("/html/pics/", func(w http.ResponseWriter, r *http.Request) {

http.ServeFile(w, r, r.URL.Path[1:])

})

http.HandleFunc("/login", login)

err := http.ListenAndServe(":8080", nil)

if err != nil {

log.Fatal("ListenAndServe: ", err)

}

}

主要是注意显示图片的路径,不能是原来的html的路径,必须是go认识的路径,所以图片的位置也设置了路由,见http.ServeFile方法,并注意html设置的图片路径。

以上这篇golang解析html网页的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:golang使用正则表达式解析网页

golang解析网页利器goquery的使用方法

Go语言通过http抓取网页的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言golang)本身并不直接提供HTML解析和屏幕截图的功能,但它可以结合第三方库来实现这两个任务。这里分别介绍如何用Go进行HTML解析和网页截图。 **1. HTML解析**: Go标准库并没有内置的HTML解析器,但你可以使用`net/http`包来获取HTML内容,然后利用第三方库如`goquery`或`htmlparser`来进行解析。例如,`goquery`是一个功能强大的库,可以方便地处理HTML文档: ```go package main import ( "fmt" "log" "github.com/PuerkitoBio/goquery" "net/http" ) func main() { resp, err := http.Get("http://example.com") if err != nil { log.Fatal(err) } defer resp.Body.Close() doc, err := goquery.NewDocumentFromReader(resp.Body) if err != nil { log.Fatal(err) } // 使用goquery选择元素并操作 doc.Find("#selector").Each(func(i int, s *goquery.Selection) { fmt.Println(s.Text()) }) } ``` 记得替换`"http://example.com"`为你要抓取的网页地址,并根据实际HTML结构使用正确的CSS选择器(`#selector`)。 **2. 截图**: 在Go中进行屏幕截图通常需要依赖操作系统级别的API或使用专门的图像处理库,如`github.com/hajimehoshi/ebiten`、`github.com/gographics/webp/enc`等。以下是一个简单的示例,使用`github.com/fogleman/gg`库截取整个浏览器窗口: ```go package main import ( "github.com/fogleman/gg" ) func screenshot() error { dc := gg.NewContext(800, 600) dc.SetRGB(1, 1, 1) // 设置背景颜色 dc.Clear() // 实现绘制屏幕截图代码... // 将画面保存到文件 err := dc.SavePNG("screenshot.png") return err } func main() { if err := screenshot(); err != nil { log.Fatal(err) } } ``` 请注意,这些库可能需要额外安装和配置才能运行,并且可能受限于目标环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值