Golang匹配网页所有A标签和文字
代码如下
首先使用正则匹配出所有A标签。通过遍历匹配结果,从中找出链接中的 href 和 文字内容
package main
import (
"fmt"
"regexp"
)
func main() {
body := `<a href="/rewards/dashboard">
<a href="/images?FORM=Z9LH" target="">图片
<li id="video">
<a href="/videos?FORM=Z9LH1" target="">视频
<a href="/maps?FORM=Z9LH2" target="">地图
<a href="//www.tl.beer?WT.mc_id=O16_BingHP">Tool
<span>`
reg := regexp.MustCompile("(?m).*?")
text := reg.FindAllStringSubmatch(body, -1)
regA := regexp.MustCompile(`href="(?s:(.*?))"`)
regT := regexp.MustCompile(`>(?s:(.*?))`)
for _, v := range text {
text2 := regA.FindAllStringSubmatch(v[0], -1)
text3 := regT.FindAllStringSubmatch(v[0], -1)
fmt.Println(text2[0][1])
fmt.Println(text3[0][1])
}
}
输出结果:
/rewards/dashboard /images?FORM=Z9LH 图片 /videos?FORM=Z9LH1 视频 /maps?FORM=Z9LH2 地图 //www.tl.beer?WT.mc_id=O16_BingHP Tool