hyphe
hyphe copied to clipboard
JS Crawling via chrome headless
TODO:
- [x] download chrome headless + driver
- [x] remove phantom binary
- [x] plug chrome within selenium in scrapyd spider
- [x] include install in build docker
- [x] rename phantom everywhere in code
- [ ] handle cloudflare websites cf #364
- [ ] edit doc (doc/install.md)
- [ ] improve unfold_scrolldown.js
- [ ] add options in frontend for advanced crawl (and adjust timeouts?)
- [ ] add crawling pages with anchors when crawling with JS enabled (cf #278 solution lies in here https://github.com/scrapy/scrapy/issues/4067 )
- [ ] reeneable CAUTIOUS CRAWL settings in frontend
- [ ] add phantom options to docker config
Introduction de deux nouveaux scripts python dans l'espoir de réactiver le JSCrawling.
bin/install_chromium.py
va aller télécharger chromium
et chromedriver
, deux outils nécessaires pour contrôler chrome headless
via selenium
.
Les binaires vont se placer dans un dossier temporaire dont le nom peut être modifier via env vars, et qui par défaut sera local-chromium
. La version de chromium téléchargé peut elle aussi être précisé via env vars.
Attention, cette ce numéro de version n'est pas le SEMVER (ex: 73.0.3679.0
) mais le numéro de build, ici 624487
par défaut.
La dernière version pour chaque plateforme peut se trouver à l’adresse https://commondatastorage.googleapis.com/chromium-browser-snapshots/{plateforme}/LAST_CHANGE
(ex: https://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac/LAST_CHANGE
)
bin/pop_chrome.py
n'est qu'un exemple d'utilisation de chrome headless avec selenium ⚠️
Ce fichier contient du code dupliqué est n'est qu'une PoC.
scrolldown_and_unfold.js
a été modifier pour ne pas quitter la page tout en gardant les events JS qui afficherais des bouts de pages cachés.