Web Scraping avec Scala
Demandais juste si quelqu'un connaît un site web de grattage de la bibliothèque qui prend avantage de la Scala succincte de la syntaxe. Jusqu'à présent, j'ai trouvé Chafe, mais cela semble mal documentés et mis à jour. Je me demandais si quelqu'un là-bas a fait racler avec Scala et a des conseils. (Je suis en train de l'intégrer dans un Scala cadre plutôt que d'utiliser un grattoir écrit, par exemple, Python.)
- Le racleur de libs qui peu travaillé pour moi sont httpunit et interface htmlunit. Mais ils sont les bibliothèques Java et non explicitement Scala.
- Lorsqu'ils sont confrontés à un problème similaire, j'ai trouvé ce Scala HTML bibliothèque utile. C'est un peu vieux, mais encore a fait le tour pour moi. J'ai enveloppé avec un TAS de construire ici. HTH
- Juste pour informer que j'ai écrit un souteneur Jsoup: github.com/filosganga/ssoup
- J'ai écrit un DSL pour construire de grattage Akka acteur systèmes, il utilise JSoup et de jet-client sous le capot. Le DSL fourni manipule un immuable contexte (inspiré par pulvérisation de routage), on peut trouver ici: github.com/bfil/scalescrape
- J'aime vraiment cet article montrant comment le faire racler avec akka: foat.me/articles/ramper avec akka
Vous devez vous connecter pour publier un commentaire.
Il y a d'abord une pléthore de HTML de grattage libs dans la JVM tout ce que vous devez faire est de pimp un d'entre eux (pimp my bibliothèque de modèle).
Les quatre que j'ai utilisé sont:
ne fonctionne pas avec Scala. Pourrait fonctionnerJ'ai utilisé le Sélénium, mais jamais pour le grattage. Scala est un wrapper autour de sélénium.
Je recommanderais le proxénétisme existant Java bibliothèque de plus de la moitié cuit Scala lib.
Je n'ai pas de Scala-recommandation spécifique, mais pour la JVM en général, j'ai eu un bon succès avec:
La Tagsoup itinéraire fonctionne très bien avec Scala depuis Scala XML intégré "dsl" est assez concis (si vous pouvez pardonner ses perf questions et occasionnel de l'API étrangeté). Aussi, Tagsoup va gérer presque toutes les ordures de document que vous donnez. Il a aussi des subtilités comme intégré dans la compréhension de nombreuses entités HTML que d'autres SAXParsers va s'étouffer comme étant non déclarées.
tl;dr - JSoup + sélecteurs CSS si possible, sinon Tagsoup + scala XML. Si lent, c'est ok, tagsoup d'abord, puis jsoup le résultat.
Je le recommande Goose: https://github.com/jiminoc/goose
Il n'est pas aussi générale que vous pourriez avoir besoin, mais si vous êtes en raclant le contenu de l'article à partir de sites populaires, il peut fonctionner hors de la boîte. Il fournit également un cadre pour vous de travailler à partir de, si vous souhaitez étendre leur code afin de couvrir d'autres sites.