DATA MINING RELOADED
In 30 Minuten zum eigenen Scraper
Jens Bonerz – SEO CAMPIXX 2016
Hallo ich bin Jens
Off Price GmbH, Leitung Marketing Team
Europaweiter E-Commerce Händler mit Webshops, Amazon,
Ebay, Adwo...
Lieblings-Tools
Data Analytics
SAS, Elastic
Machine Learning
Google Tensorflow, Caffe
Data Mining
Python, Scrapy
Schweizer Messer für Scraping
Scrapy https://github.com/scrapy/scrapy
• Free, open-source, Python
• Cookies, Delays, Timeo...
Datenanalyse
Elastic http://elastic.io
• Real Time Search & Analytics
• Free, open-source, Java, RESTful API
• Schnell, in...
Scrapen?
Dann wenn es keine API gibt.
• Preise des Wettbewerbs
• Sortiment des Wettbewerbs
• Kampagnen des Wettbewerbs
• M...
Wir scrapen in unserem
Beispiel nur einen geringen
Teil der Daten.
Weitgehender Konsens bei den Gerichten ist heute (bisla...
LASSET DIE SPIELE BEGINNEN
Mitschreiben nicht nötig. Gib mir Deine Karte nach
der Session und Du erhältst die PPT per Mail.
Ist diese Seite scrapebar?
https://www.zvg-portal.de
Bundesweite Datenbank aller Zwangsversteigerungen
Tricky!
• Kein Craw...
# Scrapy installieren
$> pip install scrapy
# Elasticsearch installieren
$> apt-get install elasticsearch
# Elasticsearch ...
# Neues Scrapy Projekt erstellen
$> scrapy startproject campixx16
# In Projekt wechseln
$> cd campixx16
# Spider erstellen...
# Automatisch generierte Projektstruktur
$> tree
── campixx16
├── __init__.py
├── __init__.pyc
├── items.py
├── pipelines....
# Datenfelder definieren in items.py
$> nano ./campixx16/items.py
class CrawlItem(Item):
document_url = Field()
title = Fi...
# Elasticsearch Schnittstelle in settings.py
$> nano ./campixx16/settings.py
ITEM_PIPELINES =
[scrapyelasticsearch.scrapye...
# Scraper bearbeiten
$> nano ./campixx16/spiders/versteigerung.py
# -*- coding: utf-8 -*-
import scrapy
from scrapy.spider...
# Scraper starten
$> scrapy crawl versteigerung
Q&A Runde
Fragen?
jens@hightechmg.com
oder bei LinkedIn und Xing
„If broken it is,
fix it you must“
Master Yoda
Nächste SlideShare
Wird geladen in …5
×

Seocampixx 2016 - Data Mining Reloaded - In 30 Minuten zum eigenen Scraper

350 Aufrufe

Veröffentlicht am

Data Mining Reloaded - In 30 Minuten zum eigenen Scraper

Veröffentlicht in: Technologie
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
350
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
7
Aktionen
Geteilt
0
Downloads
8
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Seocampixx 2016 - Data Mining Reloaded - In 30 Minuten zum eigenen Scraper

  1. 1. DATA MINING RELOADED In 30 Minuten zum eigenen Scraper Jens Bonerz – SEO CAMPIXX 2016
  2. 2. Hallo ich bin Jens Off Price GmbH, Leitung Marketing Team Europaweiter E-Commerce Händler mit Webshops, Amazon, Ebay, Adwords, PLA, AMZ PPC, Ebay Ads, Affiliate... Daten ohne Ende! Und sonst? Berater für datengetriebene E-Commerce Projekte, Amazon Vendor Central, Datenmigrationen, Datenanalysen, Anti-Scraping Konzepte, Data Mining Du findest mich bei XING und LinkedIn
  3. 3. Lieblings-Tools Data Analytics SAS, Elastic Machine Learning Google Tensorflow, Caffe Data Mining Python, Scrapy
  4. 4. Schweizer Messer für Scraping Scrapy https://github.com/scrapy/scrapy • Free, open-source, Python • Cookies, Delays, Timeouts, Proxies, User Agents • Paralleles asynchrones Scrapen • Leistungsstarke Selektoren zum Parsen • Datenqualität durch Contracts • Local Crawl Cache • Erweiterbar (z.B PhantomJS) Scrapy scraped Seiten, bei denen Standardtools wie Scrape Box et al. aussteigen.
  5. 5. Datenanalyse Elastic http://elastic.io • Real Time Search & Analytics • Free, open-source, Java, RESTful API • Schnell, invertierter Index über alle Dokumente • Schemalos, kein Datenbankmodell notwendig • Skalierbar, Sharding und Replikation über mehrere Nodes • Scrolling zum speichereffizienten Streamen von Daten • Handling von vielen Hundert Millionen Dokumenten Durch frei verfügbare Erweiterungen, die perfekte Data Analytics Lösung für Scrapy
  6. 6. Scrapen? Dann wenn es keine API gibt. • Preise des Wettbewerbs • Sortiment des Wettbewerbs • Kampagnen des Wettbewerbs • Monitoring der eigenen Shops und Angebote • Inhouse-Tools (z.B. Alertsystem für Negativ- Rezensionen) Es gibt nichts, was man mit den richtigen Tools nicht scrapen kann…
  7. 7. Wir scrapen in unserem Beispiel nur einen geringen Teil der Daten. Weitgehender Konsens bei den Gerichten ist heute (bislang keine umfassende höchstrichterliche Entscheidung), dass – wenn weder wesentliche Teile einer Datenbank kopiert werden, noch es zur technischen Überlastung der gescrapten Seite kommt – automatisiertes Sammeln von Daten zulässig ist, solange die Seite rechtlich und technisch frei zugänglich ist. Lass Dich im Zweifel juristisch beraten, wenn Dein Geschäftsmodell auf Scraping basiert.
  8. 8. LASSET DIE SPIELE BEGINNEN Mitschreiben nicht nötig. Gib mir Deine Karte nach der Session und Du erhältst die PPT per Mail.
  9. 9. Ist diese Seite scrapebar? https://www.zvg-portal.de Bundesweite Datenbank aller Zwangsversteigerungen Tricky! • Kein Crawl möglich • Einstieg über Suche • Referrer Scrapen mit Standardtools? Nope. Das machen wir mit Scrapy.
  10. 10. # Scrapy installieren $> pip install scrapy # Elasticsearch installieren $> apt-get install elasticsearch # Elasticsearch Pipeline installieren $> pip install ScrapyElasticSearch
  11. 11. # Neues Scrapy Projekt erstellen $> scrapy startproject campixx16 # In Projekt wechseln $> cd campixx16 # Spider erstellen $> scrapy genspider versteigerung https://www.zvg-portal.de/
  12. 12. # Automatisch generierte Projektstruktur $> tree ── campixx16 ├── __init__.py ├── __init__.pyc ├── items.py ├── pipelines.py ├── settings.py ├── settings.pyc └── spiders ├── __init__.py ├── __init__.pyc └── versteigerung.py ── scrapy.cfg 2 Verzeichnisse, 10 Dateien
  13. 13. # Datenfelder definieren in items.py $> nano ./campixx16/items.py class CrawlItem(Item): document_url = Field() title = Field() aktenzeichen = Field() beschreibung = Field() timestamp = Field() ... usw.
  14. 14. # Elasticsearch Schnittstelle in settings.py $> nano ./campixx16/settings.py ITEM_PIPELINES = [scrapyelasticsearch.scrapyelasticsearch.ElasticSearchPipeline] ELASTICSEARCH_SERVER = 'http://127.0.0.1' ELASTICSEARCH_PORT = 9200 ELASTICSEARCH_INDEX = 'scrapy' ELASTICSEARCH_TYPE = 'items' ELASTICSEARCH_UNIQ_KEY = 'url'
  15. 15. # Scraper bearbeiten $> nano ./campixx16/spiders/versteigerung.py # -*- coding: utf-8 -*- import scrapy from scrapy.spiders import BaseSpider from demo.items import CrawlItem from scrapy.http import FormRequest from scrapy.http import Request import datetime … …
  16. 16. # Scraper starten $> scrapy crawl versteigerung
  17. 17. Q&A Runde Fragen? jens@hightechmg.com oder bei LinkedIn und Xing
  18. 18. „If broken it is, fix it you must“ Master Yoda

×