November 1st, 2021
前言:
找到一個 LINE Bot 使用 Go 來搜尋 PTT:
https://github.com/mong0520/linebot-ptt-beauty
本來覺得很有趣,後來發現資料都是使用 MongoDB 的來用。手癢之下,決定把他整個修復完成。
修改過後的 Repo:
https://github.com/kkdai/linebot-ptt-beauty
幾個功能:
- 即時透過 PTT 抓取資料
- 即時透過 PTT 抓取最新圖片
- 可以尋找到 Post Like 跟 DisLike
透過 GoQuery 來抓取 PTT Like/DisLike
主要是透過 https://github.com/kkdai/photomgr 自行開發的功能,主要想法如下:
.push-tag
來找出所有的 “推” 跟 “噓”- 透過
Text()
來判斷是推文,還是噓文。
全部程式碼如下:
func (p *PTT) GetPostLikeDis(target string) (int, int) {
// Get https response with setting cookie over18=1
resp := getResponseWithCookie(target)
doc, err := goquery.NewDocumentFromResponse(resp)
if err != nil {
log.Println(err)
return 0, 0
}
var likeCount int
var disLikeCount int
doc.Find(".push-tag").Each(func(i int, s *goquery.Selection) {
if strings.Contains(s.Text(), "推") {
likeCount++
} else if strings.Contains(s.Text(), "噓") {
disLikeCount++
}
})
// fmt.Println("like:", likeCount, " dislike:", disLikeCount)
return likeCount, disLikeCount
}
有興趣的可以看這個 PR https://github.com/kkdai/photomgr/pull/10
待辦事項:
- 支援 PostgresSQL 來儲存使用者偏好
- 支援最受歡迎文章
- 支援隨機文章
其他資訊:
本來作者有弄 MongoDB ,但是似乎現在沒有找到免費的 Heroku 做法就算了。 不過有看到 PostgreSQL 的免費版本,看來還是可以記錄下來使用者喜愛的文章。
[Day07] 在 heroku 上使用免費的 postgresql
碎念一下:
每一次有大專案,或是很大型演講。總是覺得壓力大,這時候來寫個扣真的是一種放鬆的行為。