hyphe icon indicating copy to clipboard operation
hyphe copied to clipboard

JS Crawling via chrome headless

Open arnaudmolo opened this issue 6 years ago • 0 comments

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.

arnaudmolo avatar Jan 30 '19 11:01 arnaudmolo