Web クローラーは、Web クローラーおよび Web スパイダーとも呼ばれ、インターネット上の情報をクロールするために使用される自動プログラムです。 Web クローラーを使用すると、大量のデータを取得し、そのデータを分析および処理できます。この記事では、Golang を使用して Web クローラーを実装する方法を紹介します。
1. Golang の概要
Golang は Go 言語としても知られ、Google によって開発され、2009 年にリリースされました。 Golang は、効率、信頼性、セキュリティ、シンプルさ、同時実行性などの機能を備えた、静的に型付けされたコンパイル言語です。 Golang の効率性とシンプルさにより、Web クローラーの実装に Golang を使用する人が増えています。
2. 実装手順
その中で、「goquery」パッケージは HTML ドキュメントの解析に使用されます。 "html" パッケージが使用されます。 特定の HTML ドキュメント パーサーの場合、エンコーディングの解析には "unicode" パッケージが使用され、エンコーディングの変換には "transform" パッケージが使用されます。
resp, err := http.Get(url)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
doc, err := goquery.NewDocumentFromReader(resp.Body)
title := s. Find( "span.title").Text()
評価 := s.Find("span.rated_num").Text()
コメント := s.Find("span.inq").Text ()
})
if err != nil {
log . Fatal(err)
}
defer f.Close()
w := csv.NewWriter(f)
w.Write([]string{"タイトル", "評価", "コメント "})
for i := 0; i
w.Write(record)
}
w.Flush()
"encoding/csv"
"github.com/PuerkitoBio/goquery"
"log"
"net/http"
"os"
"regexp"
)
func クロール(URL 文字列) {
resp, err := http.Get(url)
if err != nil {
log.Fatal(err)
defer resp.Body.Close()
doc, err : = goquery.NewDocumentFromReader(resp.Body)
if err != nil {
log.Fatal(err)
ratings := []string{ }
コメント := []string{}
re := regexp.MustCompile(
s )
doc.Find(".hd").Each(func(i int, s *goquery.Selection) {
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)
defer f.Close()
w := csv.NewWriter(f)
w.Write([]string{"title", "評価", "コメント"})
for i := 0; i < len(titles); i {
record := []string{titles[i], ratings[i], comments[i]} w.Write(record)
w.Flush()
}
以上がGolang を使用して Web クローラーを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。