Skip to content

Instantly share code, notes, and snippets.

@ryu1-1uyr
Created December 19, 2019 12:48
Show Gist options
  • Save ryu1-1uyr/0c44d641c4efcdbd6deea63073371528 to your computer and use it in GitHub Desktop.
Save ryu1-1uyr/0c44d641c4efcdbd6deea63073371528 to your computer and use it in GitHub Desktop.
平和利用

Goでえいやっとscrapingをする

注意 すくれいぴんぐがダメなサイトもあります。真似しておれのせいにしないでね!!

あなたは、ついっったーでふぉろいーの誕生日を抜きたいとしましょう

というわけでそういうコードを書いていきます

goqueryを使います

$ go get github.com/PuerkitoBio/goquery

えいやっとHandleFuncを用意します

func handlerMe(w http.ResponseWriter, r *http.Request) {  
   url := "https://twitter.com/Ryu1__1uyR" //任意のurl取れるように改造したい  
  
  var array []string  
  doc, _ := goquery.NewDocument(url)  
   doc.Find("span").Each(func(_ int, s *goquery.Selection) {  
      url := s.Text()  
      if strings.Contains(url, "誕生日") {  
         array = append(array, url)  
      }  
   })  
  
   res, err := json.Marshal(array)  
  
   if err != nil {  
      http.Error(w, err.Error(), http.StatusInternalServerError)  
      return  
  }  
  
   w.Header().Set("Access-Control-Allow-Origin", "*")  
   w.Header().Set("Content-Type", "application/json")  
   w.Write(res)  
  
}

雑な解説

  1. URL先のspanをいい感じに全部見ます

  2. innerTextを見て、文字列中に 誕生日 という文字列を見つけたらそいつをピックアップします

つづき

func main() {  
   http.HandleFunc("/", handlerMe) 
   fmt.Printf("server is running\n 8080port")  
   http.ListenAndServe(":8080", nil) // サーバーを起動するよ!  
  
}

雑解説

ろーかるほすとの8080で起動します

[" 誕生日: 12月07日\n\n"," 誕生日: 12月07日\n"]こんな感じの配列がとれます!やったね!!!!!これで誕生日が見放題!

他の用途

こいつらをうまく使うと推しVtuberのかわいい画像を見るための自分だけのタイムラインがつくれます!!!!!うおおおおKawaii~~~~~~~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment