From b15b921f633730cb88169deb787bfe893cd40aae Mon Sep 17 00:00:00 2001 From: Philipp Tanlak Date: Thu, 10 Apr 2025 12:53:29 +0200 Subject: Support library usage --- examples/flyscrapelib.go | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 examples/flyscrapelib.go (limited to 'examples/flyscrapelib.go') diff --git a/examples/flyscrapelib.go b/examples/flyscrapelib.go new file mode 100644 index 0000000..641e7ac --- /dev/null +++ b/examples/flyscrapelib.go @@ -0,0 +1,41 @@ +package main + +import "github.com/philippta/flyscrape/flyscrape" + +var config = flyscrape.Config{ + URL: "https://news.ycombinator.com/", + Browser: true, + Headless: false, +} + +func scrape(ctx flyscrape.Context) any { + var ( + post = ctx.Doc.Find(".athing.submission").First() + title = post.Find(".titleline > a").Text() + commentsLink = post.Next().Find("a").Last().Attr("href") + comments = ctx.Scrape(commentsLink, scrapeComments) + ) + + return flyscrape.M{ + "title": title, + "comments": comments, + } +} + +func scrapeComments(ctx flyscrape.Context) any { + var comments []flyscrape.M + + for _, comment := range ctx.Doc.Find(".comtr").All() { + comments = append(comments, flyscrape.M{ + "author": comment.Find(".hnuser").Text(), + "text": comment.Find(".commtext").Text(), + }) + + } + + return comments +} + +func main() { + flyscrape.Run(config, scrape) +} -- cgit v1.2.3