@Starship-sn17

Как правильно парсить на Golang?

Помогите правильно парсить пожалуйста. Я использую библиотеку Colly.

1) мне нужны парсить как можно больше данные авто по ссылке
6373b114847a7691900586.png
Вот эти данные нужно парсить.

У меня получилось их парсить но хотелось бы их отделить:
CarName присвоить Tesla Y performance (4wd),
BodyCar присвоить Ceдан,
и тд.
6373b21beab98324247310.png

То что у меня получилось:
package main

import (
	"fmt"

	"github.com/gocolly/colly"
)

type Car struct {
	CarName            string
	BodyCar            string
	ReleaseYear        string
	Color              string
	driveUnit          string
	EngineVolume       float32
	Mileage            int
	State              string
	FuelType           string
	CustomsClearedInRT string
	Transmission       string
	Price              string
	Url                string
}

func main() {

	scrapURL := "https://somon.tj/adv/8960821_tesla-model-y-2022/"
	c := colly.NewCollector(
		colly.AllowedDomains("www.somon.tj", "somon.tj"),
	)
	c.OnRequest(func(r *colly.Request) {
		fmt.Printf("Visiting %s\n", r.URL)
	})
	c.OnError(func(r *colly.Response, e error) {
		fmt.Printf("Error while scraping: %s\n", e.Error())
	})

	c.OnHTML(".chars-column", func(h *colly.HTMLElement) {
		car := Car{
			CarName: h.ChildText(".value-chars"),
		}

		fmt.Println(car.CarName)
	})

	c.Visit(scrapURL)

}
  • Вопрос задан
  • 428 просмотров
Решения вопроса 2
разрешите за вас погуглить

https://github.com/gocolly/colly/blob/master/htmle...

func (h *HTMLElement) ChildTextgo(querySelector string) string


https://github.com/gocolly/colly/blob/master/htmle...

func (h *HTMLElement) ChildTexts(goquerySelector string) []string


https://stackoverflow.com/questions/61498687/how-t...

result := strings.Join(data, ",")
fmt.Println(result


How to build a web scraper with Go and Colly
https://divrhino.com/articles/build-webscraper-wit...

Building a web scraper in Go with Colly
https://blog.logrocket.com/building-web-scraper-go...
Ответ написан
Комментировать
@Starship-sn17 Автор вопроса
У меня получилось, если кому интиресно, вот как я сделал. Всем спасибо за советы и инф.
package main
import (
	"fmt"
	"github.com/gocolly/colly"
)
type Car struct {
	CarName            string
	BodyCar            string
	ReleaseYear        string
	Color              string
	DriveUnit          string
	EngineVolume       string
	Mileage            string
	State              string
	FuelType           string
	CustomsClearedInRT string
	Transmission       string
	Price              string
	Url                string
}
func main() {
	scrapURL := "https://somon.tj/adv/8960821_tesla-model-y-2022/"
	c := colly.NewCollector(
		colly.AllowedDomains("www.somon.tj", "somon.tj"),
	)
	var carAttributes []string
	c.OnHTML(".chars-column li a", func(h *colly.HTMLElement) {
		carAttributes = append(carAttributes, h.Text)
	})

	c.Visit(scrapURL)

	car := Car{}
	car.BodyCar = carAttributes[0]
	car.ReleaseYear = carAttributes[1]
	car.Color = carAttributes[2]
	car.DriveUnit = carAttributes[3]
	car.EngineVolume = carAttributes[4]
	car.Mileage = carAttributes[5]
	car.State = carAttributes[6]
	car.FuelType = carAttributes[7]
	car.Transmission = carAttributes[8]

	fmt.Println("Наша тачка -", car)
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы