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)
    	}
    
    }
    

      

  • 相关阅读:
    CF1175B Catch Overflow!
    震惊!一蒟蒻竟然写出fhqTreap
    树上差分
    洛谷 P3128 最大流Max Flow
    线段树的标记永久化/二维线段树模板
    矩阵加速~desire drive
    置换相关
    树形图们
    严格单调递增与非严格之间的转换
    记录延续性的一类dp
  • 原文地址:https://www.cnblogs.com/brady-wang/p/13559698.html
Copyright © 2011-2022 走看看