Top Banner
DATA MINING RELOADED In 30 Minuten zum eigenen Scraper Jens Bonerz – SEO CAMPIXX 2016
18

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

Feb 22, 2017

Download

Technology

Jens Bonerz
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Seocampixx 2016 - Data Mining Reloaded - In 30 Minuten zum eigenen Scraper

DATA MINING RELOADED In 30 Minuten zum eigenen Scraper

Jens Bonerz – SEO CAMPIXX 2016

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

Hallo ich bin Jens

Off Price GmbH, Leitung Marketing TeamEuropaweiter 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

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

Lieblings-Tools

Data AnalyticsSAS, Elastic

Machine LearningGoogle Tensorflow, Caffe

Data MiningPython, Scrapy

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

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.

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

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

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

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 denrichtigen Tools nicht scrapen kann…

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

Wir scrapen in unseremBeispiel 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.

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

LASSET DIE SPIELE BEGINNEN

Mitschreiben nicht nötig. Gib mir Deine Karte nach der Session und Du erhältst die PPT per Mail.

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

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.

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

# Scrapy installieren$> pip install scrapy

# Elasticsearch installieren$> apt-get install elasticsearch

# Elasticsearch Pipeline installieren$> pip install ScrapyElasticSearch

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

# Neues Scrapy Projekt erstellen $> scrapy startproject campixx16

# In Projekt wechseln $> cd campixx16

# Spider erstellen $> scrapy genspider versteigerung https://www.zvg-portal.de/

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

# 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

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

# Datenfelder definieren in items.py $> nano ./campixx16/items.py

class CrawlItem(Item):

document_url = Field() title = Field() aktenzeichen = Field() beschreibung = Field() timestamp = Field() ... usw.

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

# 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'

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

# Scraper bearbeiten $> nano ./campixx16/spiders/versteigerung.py

# -*- coding: utf-8 -*-import scrapyfrom scrapy.spiders import BaseSpiderfrom demo.items import CrawlItemfrom scrapy.http import FormRequestfrom scrapy.http import Requestimport datetime

……

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

# Scraper starten$> scrapy crawl versteigerung

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

Q&A Runde

Fragen?

[email protected]

oder bei LinkedIn und Xing

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

„If broken it is, fix it you must“

Master Yoda