pod-registry
skyscraper
pod-registry | skyscraper | |
---|---|---|
2 | 3 | |
87 | 401 | |
- | - | |
8.1 | 4.9 | |
13 days ago | 9 months ago | |
Clojure | Clojure | |
- | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pod-registry
-
Babashka: GraalVM Helped Create a Scripting Environment for Clojure
babashka supports html parsing through pods:
https://github.com/babashka/pod-registry
Pods can be written in any language and they can expose functions to babashka by implementing a protocol.
One pod exposing HTML parsing is:
https://github.com/retrogradeorbit/bootleg
Here is an example of how to use that:
https://github.com/babashka/pod-registry/blob/master/example...
-
Lokke: Clojure for Guile
This is not how babashka (or the underlying sci interpreter) works: babashka doesn't transpile to another language, but directly executes the code (via an intermediate analyzed representation). Babashka (and sci) are implemented on the JVM in Clojure itself and can leverage libraries directly from that ecosystem, without re-implementing everything for a different host than the JVM. A bb (or sci) program consists of pre-compiled Clojure code (via GraalVM native-image) and interpreted glue code. It aims to be as compatible as possible with JVM Clojure. Babashka integrates with tools.deps.alpha and can execute several existing Clojure libraries "as is" (https://github.com/borkdude/babashka/blob/master/doc/projects.md). It aims to be as compatible as possible with JVM Clojure. With the introduction of pods (https://github.com/babashka/pod-registry) it is able to leverage libraries from other ecosystems as well.
skyscraper
-
Web Scraping in Python – The Complete Guide
Yes!
My Clojure scraping framework [0] facilitates that kind of workflow, and I’ve been using it to scrape/restructure massive sites (millions of pages). I guess I’m going to write a blog post about scraping with it at scale. Although it doesn’t really scale much above that – it’s meant for single-machine loads at the moment – it could be enhanced to support that kind of workflow rather easily.
[0]: https://github.com/nathell/skyscraper
-
Babashka: GraalVM Helped Create a Scripting Environment for Clojure
I plan to port my scraping framework (Skyscraper, https://github.com/nathell/skyscraper) to babashka one day. I’m not sure how easy it will be, though, since it uses core.async (which I believe bb has limited support for) and SQLite via clojure.java.jdbc.
-
Mastering Web Scraping in Python: Crawling from Scratch
I’ve done a fair share of scraping, and I learned that on a large scale, there are a lot of cross-cutting repetitive concerns. Things like caching, fetching HTML (preferably in parallel), throttling, retries, navigation, emitting the output as a dataset…
My library, Skyscraper [0], attempts to help with these. It’s written in Clojure (based on Enlive or Reaver, both counterparts to Beautiful Soup), but the principles should be readily transferable everywhere.
[0]: https://github.com/nathell/skyscraper
What are some alternatives?
lokke - Lokke: Clojure for Guile
WebDumper - A tool for scraping, dumping and unpacking (webpacked) javascript source files.
clojure-scheme - Clojure to Scheme to C to the bare metal.
grub-2.0 - Grub is an AI powered Web crawler.
babashka-sql-pods - Babashka pods for SQL databases
ChromeController - Comprehensive wrapper and execution manager for the Chrome browser using the Chrome Debugging Protocol.
reaver - A Clojure library for extracting data from HTML.
hickory - HTML as data
colly - Elegant Scraper and Crawler Framework for Golang
CIEL - CIEL Is an Extended Lisp. Scripting with batteries included.
roswell - intended to be a launcher for a major lisp environment that just works.