Perangkak web, juga dikenali sebagai perangkak web dan labah-labah web, ialah program automatik yang digunakan untuk merangkak maklumat di Internet. Perangkak web boleh digunakan untuk mendapatkan sejumlah besar data, menganalisis dan memproses data. Artikel ini akan memperkenalkan cara menggunakan Golang untuk melaksanakan perangkak web.
1. Pengenalan kepada Golang
Golang, juga dikenali sebagai bahasa Go, telah dibangunkan oleh Google dan dikeluarkan pada tahun 2009. Golang ialah bahasa yang ditaip secara statik, disusun dengan ciri seperti kecekapan, kebolehpercayaan, keselamatan, kesederhanaan dan keselarasan. Oleh kerana kecekapan dan kesederhanaan Golang, semakin ramai orang mula menggunakan Golang untuk melaksanakan perangkak web.
2. Langkah-langkah pelaksanaan
Antaranya, pakej "goquery" digunakan untuk menghuraikan dokumen HTML dan pakej "html" digunakan Untuk penghurai dokumen HTML yang diberikan, pakej "unicode" digunakan untuk menghuraikan pengekodan, dan pakej "transform" digunakan untuk menukar pengekodan.
resp, err := http.Get(url)
if err != nil {
log.Fatal(err)
}
tunda resp.Body.Close()
doc, err := goquery.NewDocumentFromReader(resp.Body)
title := s. Find( "span.title").Teks()
rating := s.Find("span.rating_num").Text()
komen := s.Find("span.inq").Teks ()
})
if err != nil {
log . Fatal(err)
}
tunda f.Close()
w := csv.NewWriter(f)
w.Write([]rentetan{"title", "rating", " ulasan "})
untuk i := 0; i < len(tajuk); i++ {
rekod := []rentetan{tajuk[i], penilaian[i], ulasan[i]}
w.Tulis(rakam)
}
w.Flush()
"pengekodan/csv"
"github.com/PuerkitoBio/goquery"
"log"
"net/http"
"os"
"regexp"
)
func Crawl(rentetan url) {
resp, err := http.Get(url)
if err != nil {
log.Fatal(err)
tangguhkan resp.Body.Close()
doc, err : = goquery.NewDocumentFromReader(resp.Body)
if err != nil {
log.Fatal(err)
ratings := []string{ }
ulasan := []rentetan{}
semula := regexp.MustCompile(
)s+
doc.Find(".hd").Each(func(i int, s *goquery. Pemilihan ) {
title := s.Find("span.title").Text() title = re.ReplaceAllString(title, "") rating := s.Find("span.rating_num").Text() comment := s.Find("span.inq").Text() titles = append(titles, title) ratings = append(ratings, rating) comments = append(comments, comment)
f, err := os.Create("movies.csv")
if err != nil {
log.Fatal(err)
tangguhkan f.Close()
w := csv.NewWriter(f)
w.Write([]rentetan{"title", "rating", "comment"})
for i := 0 ; i < len(titles); i++ {
record := []string{titles[i], ratings[i], comments[i]} w.Write(record)
w.Flush()
}
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan perangkak web menggunakan Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!