吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1773|回复: 4
收起左侧

[其他原创] Go语言 汽车之家精选论坛图片下载

[复制链接]
Jocelyn123 发表于 2021-7-2 15:43
[Golang] 纯文本查看 复制代码
// 精选网页地址
url := "https://club.autohome.com.cn/jingxuan/"



地址也可以更换成其它板块,你们懂的!需要手动创建path路径,路径必须存在。
下面是源码demo
[Golang] 纯文本查看 复制代码
package main

import (
	"fmt"
	"github.com/PuerkitoBio/goquery"
	"go_dev_idea/app/service"
	"io/ioutil"
	"net/http"
	"os"
	"strconv"
	"strings"
	"time"
)

func main()  {
	arr := GetAutoList()
	for _,v := range arr {
		DownloadAutoDetail("https:" + v)
		// 防止被盾
		time.Sleep(2 * time.Second)
	}
}

func GetAutoList() []string{
	// 精选
	url := "https://club.autohome.com.cn/jingxuan/"
	header := map[string]string{
		"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",
	}
	byt := MicHeaderRequest(url,nil,header)
	doc, _ := goquery.NewDocumentFromReader(strings.NewReader(string(byt)))
	// tz-picture
	imgUrls := make([]string,0)
	doc.Find(".pic-box").Each(func(i int, s *goquery.Selection) {
		//解析<li>标签
		url,_ := s.Find("a").Attr("href")
		imgUrls = append(imgUrls,url)
	})
	return imgUrls
}

func MicHeaderRequest(url string,params,header map[string]string) []byte{
	client := &http.Client{Timeout: 5 * time.Second}
	newRequest, err := http.NewRequest("GET",url,nil)
	if err != nil {
		return nil
	}
	for k,v := range header {
		newRequest.Header.Set(k,v)
	}
	resp, err := client.Do(newRequest)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()
	body, _ := ioutil.ReadAll(resp.Body)
	return body
}

func DownloadAutoDetail(url string)  {
	header := map[string]string{
		"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36",
	}
	byt := service.MicHeaderRequest(url,nil,header)
	//fmt.Println(string(byt))
	doc, _ := goquery.NewDocumentFromReader(strings.NewReader(string(byt)))
	// tz-picture
	imgUrls := make([]string,0)
	doc.Find(".tz-figure").Each(func(i int, s *goquery.Selection) {
		//解析<li>标签
		url,_ := s.Find("img").Attr("data-src")
		imgUrls = append(imgUrls,url)
	})
	doc.Find(".tz-picture").Each(func(i int, s *goquery.Selection) {
		//解析<li>标签
		url,_ := s.Find("img").Attr("data-src")
		imgUrls = append(imgUrls,url)
	})
	title := strings.Replace(strings.Replace(doc.Find(".post-title").Text(), " ", "", -1), "\n", "", -1)
	// "F:/images/2021.5.8/" 需要自己手动创建 路劲必须存在
	path := "F:/images/2021.5.8/"+title
	CreatedDir(path)
	for k,v := range imgUrls {
		SaveImages("https:"+v,path+"/"+strconv.Itoa(k))
	}
}

func CreatedDir(path string) {
	os.Mkdir(path, os.ModePerm)
}

func SaveImages(url,path string){
	resp, err := http.Get(url)
	defer resp.Body.Close()
	if err != nil {
		fmt.Println(err)
	}
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		fmt.Println(err)
	}
	_ = ioutil.WriteFile(path+".jpg", body, 0755)
}

免费评分

参与人数 1吾爱币 +5 热心值 +1 收起 理由
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

七秒的记忆 发表于 2021-7-2 22:52
小白不会  坐等成品   
RKCN 发表于 2021-7-7 22:24
缺少东西吧,

go_dev_idea/app/service
这个是什么类啊?
 楼主| Jocelyn123 发表于 2021-7-8 09:50
RKCN 发表于 2021-7-7 22:24
缺少东西吧,

go_dev_idea/app/service

把64行 byt := service.MicHeaderRequest(url,nil,header) 换成 byt := MicHeaderRequest(url,nil,header)
RKCN 发表于 2021-7-8 22:05
感谢,已经可以执行了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 15:28

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表