Heim >Backend-Entwicklung >Python-Tutorial >Wie verwende ich Scrapy, um Daten von Google-Spiegelseiten abzurufen?

Wie verwende ich Scrapy, um Daten von Google-Spiegelseiten abzurufen?

WBOY
WBOYOriginal
2023-06-22 11:42:091188Durchsuche

Mit der Entwicklung des Internets verlassen wir uns bei der Informationsbeschaffung zunehmend auf Suchmaschinen. Allerdings haben viele Länder oder Regionen aus verschiedenen Gründen den Zugriff auf Suchmaschinen wie Google blockiert oder eingeschränkt, was es für uns schwierig macht, an Informationen zu gelangen. In diesem Fall können wir Google Mirror für den Zugriff nutzen. In diesem Artikel wird erläutert, wie Sie mit Scrapy Daten von Google-Spiegelseiten abrufen.

1. Was ist Google Mirroring?

Google Mirroring bezieht sich auf die Speicherung von Google-Suchergebnissen auf einer Website, auf die Benutzer zugreifen können. Durch den Besuch dieser Website können Nutzer dieselben Suchergebnisse erhalten wie bei Google. Typischerweise werden diese Spiegelseiten freiwillig von Einzelpersonen oder Gruppen erstellt und stehen in der Regel in keiner offiziellen Verbindung zu Google.

2. Vorbereitung

Bevor wir Scrapy zum Crawlen von Daten verwenden, müssen wir einige Vorbereitungen treffen. Zunächst müssen wir sicherstellen, dass auf unserem System das Python- und Scrapy-Framework installiert ist. Zweitens benötigen wir die Adresse einer Google Mirror-Website. Normalerweise können sich die Adressen dieser Spiegel-Websites ändern, und wir müssen rechtzeitig Aktualisierungen finden. Hier nehmen wir als Beispiel die Website „https://g.cactus.tw/“.

3. Erstellen Sie ein Scrapy-Projekt

Nachdem wir sichergestellt haben, dass die Systemumgebung und die Website-Adresse bereit sind, können wir schnell ein Scrapy-Projekt über das Scrapy-Befehlszeilentool erstellen. Der spezifische Vorgang ist wie folgt:

$ scrapy startproject google_mirror

Dadurch wird ein Projektverzeichnis mit dem Namen google_mirror im aktuellen Verzeichnis erstellt. Die Verzeichnisstruktur ist wie folgt:

google_mirror/
    scrapy.cfg
    google_mirror/
        __init__.py
        items.py
        middlewares.py
        pipelines.py
        settings.py
        spiders/
            __init__.py

Unter anderem ist scrapy.cfg die Scrapy-Konfigurationsdatei. Das Verzeichnis google_mirror ist unser Projektstammverzeichnis. items.py, middlewares.py, Pipelines.py und Settings.py sind einige der Kerndateien von Scrapy, die zum Definieren von Datenmodellen, zum Schreiben von Middleware, zum Schreiben von Pipelines und zum Konfigurieren einiger Parameter von Scrapy verwendet werden. Im Spider-Verzeichnis schreiben wir Crawler-Code.

4. Crawler-Code schreiben

Im Projektverzeichnis können wir über das Befehlszeilentool schnell einen Scrapy-Crawler erstellen. Der spezifische Vorgang ist wie folgt:

$ cd google_mirror
$ scrapy genspider google g.cactus.tw

Dadurch wird ein Crawler namens google im Spiders-Verzeichnis erstellt. In diesem Crawler können wir unseren Crawling-Code schreiben. Der spezifische Code lautet wie folgt:

import scrapy

class GoogleSpider(scrapy.Spider):
    name = 'google'
    allowed_domains = ['g.cactus.tw']
    start_urls = ['https://g.cactus.tw/search']

    def parse(self, response):
        results = response.css('div.g')
        for result in results:
            title = result.css('a::text').get()
            url = result.css('a::attr(href)').get()
            summary = result.css('div:nth-child(2) > div > div:nth-child(2) > span::text').get()
            yield {
                'title': title,
                'url': url,
                'summary': summary,
            }

Dieser Crawler fordert die Seite https://g.cactus.tw/search an und crawlt dann den Titel, die URL und die zusammenfassenden Informationen in den Suchergebnissen. Beim Schreiben von Crawler-Code haben wir den von Scrapy bereitgestellten CSS-Selektor verwendet, um Seitenelemente zu finden.

5. Führen Sie den Crawler aus

Nachdem wir den Crawler-Code geschrieben haben, können wir den Crawler über den folgenden Befehl ausführen:

$ scrapy crawl google

Scrapy führt den von uns geschriebenen Crawler-Code automatisch aus und gibt die gecrawlten Ergebnisse aus. Die Ausgabeergebnisse lauten wie folgt:

{'title': 'Scrapy | An open source web scraping framework for Python', 'url': 'http://scrapy.org/', 'summary': "Scrapy is an open source and collaborative web crawling framework for Python. In this post I'm sharing what motivated us to create it, why we think it is important, and what we have planned for the future."}
{'title': 'Scrapinghub: Data Extraction Services, Web Crawling & Scraping', 'url': 'https://scrapinghub.com/', 'summary': 'Scrapinghub is a cloud-based data extraction platform that helps companies extract and use data from the web. Our web crawling services are trusted by Fortune 500 companies and startups.'}
{'title': 'GitHub - scrapy/scrapy: Scrapy, a fast high-level web crawling & scraping framework for Python.', 'url': 'https://github.com/scrapy/scrapy', 'summary': 'Scrapy, a fast high-level web crawling & scraping framework for Python. - scrapy/scrapy'}
{'title': 'Scrapy Tutorial | Web Scraping Using Scrapy Python - DataCamp', 'url': 'https://www.datacamp.com/community/tutorials/scraping-websites-scrapy-python', 'summary': 'This tutorial assumes you already know how to code in Python. Web scraping is an automatic way to extract large amounts of data from websites. Since data on websites is unstructured, web scraping enables us to convert that data into structured form. This tutorial is all about using  ...'}
...

Diese Ergebnisdaten umfassen den Titel, die URL und zusammenfassende Informationen zu jedem Suchergebnis, die nach Bedarf verarbeitet und analysiert werden können.

6. Zusammenfassung

In diesem Artikel wird beschrieben, wie Sie mit Scrapy Daten von Google-Spiegelseiten abrufen. Wir haben zunächst das Konzept und die Vorteile der Google-Spiegelung verstanden und dann einen Crawler über das Scrapy-Framework geschrieben, um Suchergebnisdaten zu crawlen. Durch die Nutzung der leistungsstarken Programmierfähigkeiten von Python und der hervorragenden Funktionen des Scrapy-Frameworks können wir große Datenmengen schnell und effizient abrufen. Natürlich müssen wir in praktischen Anwendungen auch einige ethische und rechtliche Anforderungen an die Datenerfassung beachten.

Das obige ist der detaillierte Inhalt vonWie verwende ich Scrapy, um Daten von Google-Spiegelseiten abzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn