Avec le développement d'Internet, nous nous appuyons de plus en plus sur les moteurs de recherche pour obtenir des informations. Cependant, de nombreux pays ou régions ont bloqué ou restreint l'accès aux moteurs de recherche tels que Google pour diverses raisons, ce qui rend difficile l'obtention d'informations. Dans ce cas, nous pouvons utiliser Google Mirror pour y accéder. Cet article explique comment utiliser Scrapy pour obtenir les données de la page miroir Google.
1. Qu'est-ce que la mise en miroir de Google ?
La mise en miroir de Google fait référence au stockage des résultats de recherche Google d'une manière ou d'une autre sur un site Web accessible aux utilisateurs. En visitant ce site Web, les utilisateurs peuvent obtenir les mêmes résultats de recherche qu’en visitant Google. En règle générale, ces sites Web miroirs sont créés volontairement par des individus ou des groupes et n’ont généralement aucun lien officiel avec Google.
2. Préparation
Avant d'utiliser Scrapy pour explorer des données, nous devons faire quelques préparatifs. Tout d’abord, nous devons nous assurer que notre système dispose du framework Python et Scrapy installé. Deuxièmement, nous avons besoin de l’adresse d’un site Web miroir de Google. Normalement, les adresses de ces sites Web miroirs sont susceptibles de changer et nous devons trouver des mises à jour à temps. Nous prenons ici comme exemple le site Internet « https://g.cactus.tw/ ».
3. Créer un projet Scrapy
Après nous être assurés que l'environnement système et l'adresse du site Web sont prêts, nous pouvons créer rapidement un projet Scrapy via l'outil de ligne de commande Scrapy. L'opération spécifique est la suivante :
$ scrapy startproject google_mirror
Cela créera un répertoire de projet nommé google_mirror dans le répertoire courant. La structure des répertoires est la suivante :
google_mirror/ scrapy.cfg google_mirror/ __init__.py items.py middlewares.py pipelines.py settings.py spiders/ __init__.py
Parmi eux, scrapy.cfg est le fichier de configuration de Scrapy. Le répertoire google_mirror est le répertoire racine de notre projet. items.py, middlewares.py, pipelines.py et settings.py sont quelques-uns des fichiers principaux de Scrapy, qui sont utilisés respectivement pour définir des modèles de données, écrire des middlewares, écrire des pipelines et configurer certains paramètres de Scrapy. Le répertoire spiders est l’endroit où nous écrivons le code du robot.
4. Écrivez le code du robot
Dans le répertoire du projet, nous pouvons créer rapidement un robot Scrapy via l'outil de ligne de commande. L'opération spécifique est la suivante :
$ cd google_mirror $ scrapy genspider google g.cactus.tw
Cela créera un robot nommé google dans le répertoire spiders. Nous pouvons écrire notre code d'exploration dans ce robot. Le code spécifique est le suivant :
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, }
Ce robot d'exploration demandera la page https://g.cactus.tw/search, puis explorera le titre, l'URL et les informations récapitulatives dans les résultats de recherche. Lors de l'écriture du code du robot, nous avons utilisé le sélecteur CSS fourni par Scrapy pour localiser les éléments de la page.
5. Exécutez le robot d'exploration
Après avoir écrit le code du robot d'exploration, nous pouvons exécuter le robot d'exploration via la commande suivante :
$ scrapy crawl google
Scrapy exécutera automatiquement le code du robot d'exploration que nous avons écrit et affichera les résultats analysés. Les résultats de sortie sont les suivants :
{'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 ...'} ...
Ces données de résultats incluent le titre, l'URL et les informations récapitulatives de chaque résultat de recherche, qui peuvent être traitées et analysées selon les besoins.
6. Résumé
Cet article explique comment utiliser Scrapy pour obtenir les données de la page miroir Google. Nous avons d'abord compris le concept et les avantages de la mise en miroir de Google, puis avons écrit un robot d'exploration via le framework Scrapy pour explorer les données des résultats de recherche. En tirant parti des puissantes capacités de programmation de Python et des excellentes fonctions du framework Scrapy, nous pouvons obtenir de grandes quantités de données rapidement et efficacement. Bien entendu, dans les applications pratiques, nous devons également respecter certaines exigences éthiques et juridiques en matière d’acquisition de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!