Xpath-Zusammenfassung beim Extrahieren von Daten von einer Website mit Python Scrapy

Sie können das Python-Modul Scrapy verwenden, um Website-Daten automatisch nacheinander abzurufen, während Sie durch die Links blättern.

Um die gewünschten Daten von der Website zu extrahieren, müssen Sie den ** Speicherort der gewünschten Daten ** angeben.

Was Sie angeben, heißt ** Selector **. In Scrapy gibt es CSS- und Xpath-Spezifikationsmethoden, aber dieses Mal werde ich erklären, wie Xpath verwendet wird.

Vorbereitung

Installieren Sie Scrapy mit pip.

commandline


$ pip install scrapy

Scrapy Shell Scrapy verfügt über ein Tool namens Scrapy-Shell, mit dem Sie die Datenextraktion interaktiv überprüfen können.

commandline


scrapy shell "http://hogehoge.com/hoge/page1"

Wenn Sie like angeben, wird die interaktive Python-Shell mit der Instanzantwort ** gestartet, die die Informationen der angegebenen Seite enthält. Wenn wir tatsächlich eine Spinne (Crawler) entwickeln, extrahieren wir auch Daten aus dieser Antwortinstanz.

Trainieren

xpath Antwortmethode

Grundsätzlich werden wir die Daten mit einer solchen Syntax extrahieren.

shell


>>> response.xpath('//title/text()')
    [<Selector (text) xpath=//title/text()>]

In diesem Beispiel wird der Text (text ()) aller Titel-Tags (// title) im empfangenen HTML-Text extrahiert. Wenn es jedoch unverändert bleibt, ist der Rückgabewert ein Selektor wie oben beschrieben. Verwenden Sie .extract (), um die Zeichen abzurufen.

shell


>>> response.xpath('//title/text()').extract()
    [u'exsample title']
Stringifizierung extrahierter Daten

Da es sich bei den extrahierten Daten um eine Liste handelt, machen Sie sie durch Angabe eines Arrays zu einer Zeichenfolge.

shell


>>> response.xpath('//title/text()').extract()[0]
    u'exsample title'

Übrigens bedeutet diese "Zeichenfolge" Unicode. Python behandelt Zeichenfolgen in Unicode.

Wenn Sie auf mehreren Websites patrouillieren, ist der von Ihnen angegebene xpath möglicherweise nirgendwo anwendbar. Wenn Sie in diesem Zustand den 0. response.xpath (hoge) .extract [0] des Arrays wie oben angeben, tritt ein Fehler auf, um dies zu vermeiden

shell


>>> item['hoge'] = response.xpath('//title/text()').extract_first()

Und so weiter.

Wenn Sie alle erhaltenen Sequenzen "[u'hoge1", "u'hoge2", "u'hoge3"] "usw. verketten und als Zeichenfolge erhalten möchten.

shell


>>> extract_list = [u'hoge1', u'hoge2', u'hoge3']
>>> ''.join(extract_list)
    u'hoge1hoge2hoge3'

Du kannst es schaffen.

xpath Sammlung

xpath Inhalt
//div Alle div-Tags
//div[@class='aaa'] In allen Klassen'aaa'Div Tag mit
//div[@id='aaa']/text() Alle, id'aaa'Div-Tag->Körper
//a[text()='aaa']/@href Der ganze Text'aaa'Eine Markierung->Href-Attributwert von
//div/tr Alle Divs->Tr-Tag des untergeordneten Elements
//table/tr/th[text()='price']/following-sibling::td[1]/text() Alle Tabellen->Diese Linie->Feld namens Preis->Erstes der Datenelemente->Körper

Der x-Pfad für die letzte Tabelle ist praktisch, da Sie den Wert aus der Tabelle auf der Webseite abrufen können, indem Sie das Feld angeben (Preis im obigen Fall, Betragsteil). Wenn Sie "td" angeben, wird das td-Element in derselben Zeile immer häufiger verwendet, sodass das erste als "td [1]" extrahiert wird. Es ist "[1]". Es ist nicht "[0]".

Recommended Posts

Xpath-Zusammenfassung beim Extrahieren von Daten von einer Website mit Python Scrapy
[Hinweis] Mit Python Daten von PostgreSQL abrufen
Extrahieren Sie mit Python Daten von einer Webseite
Datenanalyse mit Python
BigQuery-Python war nützlich, wenn Sie mit BigQuery aus Python arbeiten
So kratzen Sie Bilddaten von Flickr mit Python
Ich habe versucht, mit Scrapy Daten von einer Website zu sammeln
[Grundlagen der Datenwissenschaft] Sammeln von Daten aus RSS mit Python
Abrufen von Daten aus der Datenbank über ODBC mit Python (Access)
Mit Python erstellte Beispieldaten
Ein Memo, das mit Python & Spark Daten aus dashDB liest
Problem, Parameter beim Umgang mit Blender aus Python nicht zu kennen
Festliches Scraping mit Python, Scrapy
Hinweise zum Importieren von Daten aus MySQL oder CSV mit Python
Holen Sie sich Youtube-Daten mit Python
Skript beim Ausführen von Scrapy aus dem Skript
20200329_Einführung in die Datenanalyse mit Python 2nd Edition Personal Summary
Python-Datentyp-Zusammenfassungsnotiz
Fehler beim Spielen mit Python
Abrufen von Daten aus der Analyse-API mit Google API Client für Python
Beispielcode-Zusammenfassung bei der Arbeit mit Google-Tabellen von Google Colab
Grundlegende Zusammenfassung der Datenoperationen mit Python Pandas - Erste Hälfte: Datenerstellung und -operationen
Mit Skype benachrichtigen Sie mit Skype von Python!
Lesen von JSON-Daten mit Python
So vermeiden Sie doppelte Daten bei der Eingabe von Python in SQLite.
Einführung in die Datenanalyse mit Python P17-P26 [ch02 1.usa.gov Daten von bit.ly]
Holen Sie sich Daten von VPS MySQL mit Python 3 und SQL Alchemy
Bearbeiten von Kintondaten mit dem Python & C Data ODBC-Treiber von AWS Lambda
Python: Tags von HTML-Daten ausschließen
Rufen Sie C von Python mit DragonFFI auf
Hit Schatzdaten von Python Pandas
Verwenden von Rstan aus Python mit PypeR
Installieren Sie Python von der Quelle mit Ansible
[Python] Mit DataReader Wirtschaftsdaten abrufen
Python-Datenstruktur mit Chemoinfomatik gelernt
Führen Sie Aprili von Python auf Orange aus
Rufen Sie Python von Nim mit Nimpy auf
Visualisieren Sie Ihre Daten ganz einfach mit Python Seaborn.
Verarbeiten Sie Pubmed .xml-Daten mit Python
Datenanalyse beginnend mit Python (Datenvisualisierung 1)
Vorsichtsmaßnahmen bei der Verwendung von Phantomjs aus Python
Wenn matplotlib nicht mit python2.7 funktioniert
Laden Sie fbx aus Python mitinema4d
Bei Verwendung von MeCab mit virtualenv python
Vorsichtsmaßnahmen bei Verwendung von sechs mit Python 2.5
Datenanalyse beginnend mit Python (Datenvisualisierung 2)
Anwendung von Python: Datenbereinigung Teil 2: Datenbereinigung mit DataFrame
[Python] Format, wenn to_csv mit Pandas
Umgang mit OAuth2-Fehlern bei Verwendung von Google APIs aus Python
Datenintegration von der Python-App unter Linux zu Amazon Redshift mit ODBC
Datenintegration von der Python-App unter Windows zu Amazon Redshift mit ODBC
Kopieren Sie Daten von Amazon S3 mit Python (boto) in Google Cloud Storage.
Machen Sie mit Python einen Entscheidungsbaum von 0 und verstehen Sie ihn (4. Datenstruktur)
Tipps (Datenstruktur), die Sie beim Programmieren von Wettbewerben mit Python2 kennen sollten
Holen Sie sich mit Python zusätzliche Daten zu LDAP
Datenpipeline-Aufbau mit Python und Luigi
Holen Sie sich HTML von Element mit Python-Selen
Snippet für die Vollbit-Suche mit Python
Spielen Sie eine Audiodatei von Python mit Interrupt ab
Erstellen Sie mit python3 eine Wortwolke aus Ihrem Tweet