go 虎牙爬取
2024-10-09 15:02:03
package main import (
"fmt"
"github.com/antchfx/htmlquery"
"io/ioutil"
"net/http"
) func main() { var url string = "https://www.huya.com/l" resp, _ := http.Get(url) defer resp.Body.Close() doc,_ := htmlquery.Parse(resp.Body)
list := htmlquery.Find(doc, "//ul[@id='js-live-list']//li")
for _,li := range list{
nick := htmlquery.FindOne(li,"//i[@class='nick']/text()")
//people := htmlquery.FindOne(li,"//i[@class='js-num']/text()")
//title := htmlquery.FindOne(li,"//a[@class='title']")
img := htmlquery.FindOne(li,"//a[@class='video-info ']/img/@data-original")
//fmt.Printf("%s %s %s %s\n",htmlquery.InnerText(nick),htmlquery.InnerText(people),htmlquery.SelectAttr(title,"title"),htmlquery.SelectAttr(img,"data-original"))
imgurl := htmlquery.SelectAttr(img,"data-original")
titleString := htmlquery.InnerText(nick) savepic(imgurl,titleString)
} } func savepic(url string,name string ) {
if len(url)<= 0{
return
} if url[0:2] == "//" {
url = "http:"+url
} resp, err := http.Get(url)
if err !=nil{
fmt.Println("http error",err)
return
}
content, err1 := ioutil.ReadAll(resp.Body)
if err1 != nil{
fmt.Println("read err",err1)
return
} file := ioutil.WriteFile("./imgs/"+name+".jpg", content, 0777)
if file != nil {
fmt.Printf("下载图片%s 失败\n", name)
} else{
fmt.Printf("下载图片%s 成功\n", name)
} }
最新文章
- Linux命令学习总结:cp命令
- js瀑布流(定位法)
- OpenCV图像的二值化
- My97DatePicker日期范围限制
- 高效查看MySQL帮助文档的方法
- C++位操作符总结
- 使用poi将word转换为html
- JVM之---Java内存分配参数(第四篇)
- sql语句收集
- 1441: Min
- jmeter入门(02)测试报告各项指标含义
- ubuntu不能联网的问题
- Excel编辑栏字体显示大小
- 状态机学习(六)解析JSON2
- PHI 数据库简介
- Javascript-逻辑运算符非(!)
- URAL 1513 Lemon Tale
- python的 del 函数是删对象还是删引用
- Docker使用阿里云镜像加速
- 一些$LCT$的瓜皮题目