zoukankan      html  css  js  c++  java
  • go 虎牙爬取

    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
    ",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 失败
    ", name)
    	} else{
    		fmt.Printf("下载图片%s 成功
    ", name)
    	}
    
    }
    

      

  • 相关阅读:
    获得H.264视频分辨率的方法
    学习Mathematica
    关于LaTeX公式排版
    关于Jordan标准形
    关于surface gradient
    Jacobi-Anger expansion
    两个1/x类的广义函数
    积分计算相关内容
    关于multi-index
    关于$mathcal{D}(0,1)$上的一个有趣结论
  • 原文地址:https://www.cnblogs.com/brady-wang/p/13559698.html
Copyright © 2011-2022 走看看