スクレイピングの対象は、特定のタグを対象にした最近ストックされた投稿と新着投稿になる。
※Qiitaが用意している公開APIを利用すれば同等のことができ、安定もしているので、通常、そちらの利用をおすすめします。
使用例
取得したいtagとpage(省略可能,デフォルト1)を指定して使う。
最近ストックされた投稿(例.ruby)
package main
import (
"fmt"
"github.com/high5/go-qiita-explore"
"log"
)
func main() {
explore := explore.NewExplore()
articles, err := explore.GetStocks("Ruby")
if err != nil {
log.Fatal(err)
}
for index, article := range articles {
if index == 0 {
fmt.Println("------------------------------------------------------------------------------")
}
fmt.Printf("title: %s \n", article.Title)
fmt.Printf("url: %s \n", article.URL.String())
fmt.Printf("user: %s \n", article.UserName)
fmt.Printf("user_url: %s \n", article.UserURL.String())
fmt.Printf("stock: %d \n", article.StockCount)
fmt.Printf("created_time: %s \n", article.CreatedTime.Format("2006-01-02"))
for index, tag := range article.Tags {
tagNo := index + 1
fmt.Printf("tag%d: %s (http://qiita.com/tags/%s)\n", tagNo, tag, tag)
}
fmt.Println("------------------------------------------------------------------------------")
}
}
新着投稿(例.JavaScript)
package main
import (
"fmt"
"github.com/high5/go-qiita-explore"
"log"
)
func main() {
explore := explore.NewExplore()
articles, err := explore.GetItems("JavaScript", 1)
if err != nil {
log.Fatal(err)
}
for index, article := range articles {
if index == 0 {
fmt.Println("------------------------------------------------------------------------------")
}
fmt.Printf("title: %s \n", article.Title)
fmt.Printf("url: %s \n", article.URL.String())
fmt.Printf("user: %s \n", article.UserName)
fmt.Printf("user_url: %s \n", article.UserURL.String())
fmt.Printf("stock: %d \n", article.StockCount)
fmt.Printf("created_time: %s \n", article.CreatedTime.Format("2006-01-02"))
for index, tag := range article.Tags {
tagNo := index + 1
fmt.Printf("tag%d: %s (http://qiita.com/tags/%s)\n", tagNo, tag, tag)
}
fmt.Println("------------------------------------------------------------------------------")
}
}