Skip to content

Instantly share code, notes, and snippets.

@ddneat
Last active October 29, 2016 11:10
Show Gist options
  • Save ddneat/33beceea3e1ea2aba12dca5d98d686e6 to your computer and use it in GitHub Desktop.
Save ddneat/33beceea3e1ea2aba12dca5d98d686e6 to your computer and use it in GitHub Desktop.
Scaling Web Scraper

Scaling Web Scraper

Session at SoCraTes Linz, 29. October 2016 https://twitter.com/SoCraTesAT

Keep in Mind

Tools, Infrastructure & Services

Consider

  • Avoid IP identification
  • Enable Gzip Compression
  • Use AdBlocker to avoid tracking requests
  • VPN Providers like Squid

Web Scraping, GERMAN Notes by https://twitter.com/_nd_

  • Rechtliche Rahmenbedingungen: “nur dass ich es kann, heisst nicht, dass ich es darf”. Datenbankrecht
  • Verhindern von Triggern der IP-Erkennung
  • VPN mit Squid, wird von Source angesprochen - kleine VPNs haben schon > 50 IPs
  • Web Archive von http://Archive.org praktisch für Crawling-Ergebisse
  • Crawling von Single Page Seiten: Google # URLs sind meist ganz okay. Selenium/PhantomJS/NightmareJS/SlimerJS/Apache Nutch/Splash (SaS, oder Docker-Container)
  • Noise Reduction mit Boilerpipe
  • JS entweder mit Timeout oder (wenn Struktur bekannt ist, testen bis erwartetes Element da ist)
  • HTTP-Kompression gegen unnötigen Netzwerktraffic/CPU-Last!
  • HTTPS-Zertifikate: ggf. muss Zertifikats-Checking ausgeschaltet werden.
  • Automatische User-Registrierung?
  • Alternativpläne: Mechanical Turk, Kontakt mit existierenden Meta-Datenhaltern (z.B. Preise nicht scrapen, sondern von Geizhals), handgeschriebene Parser + Unit Test für Fehlschlag/Wartung, Manuell als Bootstrapping und später per Befüllung per API.
  • Probleme: Google Analytics soll nicht getriggert werden (AdBlocker); CPU oder Memoryfootprint ist zu hoch und VM/Container muss neu gestartet werden.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment