用go帮我写一个爬虫脚本,爬虫网站为www.taoche.com
时间: 2024-04-21 11:27:52 浏览: 95
好的,以下是一个简单的Go语言爬虫脚本,可以爬取淘车网的车辆信息:
```
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
"github.com/PuerkitoBio/goquery"
)
func main() {
// 定义请求头
headers := map[string]string{
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
}
// 循环爬取多页
for page := 1; page <= 5; page++ {
// 构造请求URL
url := fmt.Sprintf("https://www.taoche.com/all/?page=%d", page)
// 发送请求
req, err := http.NewRequest("GET", url, nil)
if err != nil {
fmt.Println(err)
return
}
for key, value := range headers {
req.Header.Set(key, value)
}
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer resp.Body.Close()
// 解析响应
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println(err)
return
}
doc, err := goquery.NewDocumentFromReader(strings.NewReader(string(body)))
if err != nil {
fmt.Println(err)
return
}
// 获取车辆信息
doc.Find(".gongge_ul li").Each(func(i int, s *goquery.Selection) {
title := s.Find(".t_c a").Text()
price := s.Find(".detail .price em").Text()
mileage := s.Find(".detail .koubei span").Eq(0).Text()
fmt.Printf("%s, %s万, %s\n", title, price, mileage)
})
}
}
```
这个示例代码可以循环爬取淘车网的多个页面,每个页面包含多个车辆信息。同时,需要注意爬虫行为可能会违反网站的使用协议和法律法规,请您谨慎使用,并且遵守相关规定。
阅读全文