ホームページ > バックエンド開発 > Python チュートリアル > Scrapyを使用してGoogleミラーページデータを取得するにはどうすればよいですか?

Scrapyを使用してGoogleミラーページデータを取得するにはどうすればよいですか?

WBOY
リリース: 2023-06-22 11:42:09
オリジナル
1211 人が閲覧しました

インターネットの発展に伴い、私たちは情報を得るために検索エンジンにますます依存するようになりました。しかし、多くの国や地域ではさまざまな理由によりGoogleなどの検索エンジンへのアクセスがブロックされたり、アクセスが制限されたりしているため、情報を入手することが困難になっています。この場合、Google Mirror を使用してアクセスできます。この記事ではScrapyを使ってGoogleミラーページのデータを取得する方法を紹介します。

1. Google ミラーリングとは

Google ミラーリングとは、ユーザーがアクセスできる Web サイトに何らかの方法で Google 検索結果を保存することを指します。この Web サイトにアクセスすると、ユーザーは Google にアクセスした場合と同じ検索結果を得ることができます。通常、これらのミラー ウェブサイトは個人またはグループによって自主的に作成されており、通常は Google と公式の関係はありません。

2. 準備作業

Scrapy を使用してデータをクロールする前に、いくつかの準備作業を行う必要があります。まず、システムに Python と Scrapy フレームワークがインストールされていることを確認する必要があります。次に、Google ミラー Web サイトのアドレスが必要です。通常、これらのミラー Web サイトのアドレスは変更される傾向があるため、適時に更新を見つける必要があります。ここではウェブサイト「https://g.cactus.tw/」を例に挙げます。

3. Scrapy プロジェクトの作成

システム環境と Web サイトのアドレスが準備できていることを確認したら、Scrapy コマンド ライン ツールを使用して Scrapy プロジェクトをすぐに作成できます。具体的な操作は次のとおりです。

$ scrapy startproject google_mirror
ログイン後にコピー

これにより、現在のディレクトリに google_mirror という名前のプロジェクト ディレクトリが作成されます。ディレクトリ構造は次のとおりです。

google_mirror/
    scrapy.cfg
    google_mirror/
        __init__.py
        items.py
        middlewares.py
        pipelines.py
        settings.py
        spiders/
            __init__.py
ログイン後にコピー

このうち、scrapy.cfg は Scrapy 設定ファイルです。 google_mirror ディレクトリはプロジェクトのルート ディレクトリです。 items.py、middlewares.py、pipelines.py、settings.py は Scrapy のコア ファイルの一部で、それぞれデータ モデルの定義、ミドルウェアの作成、パイプラインの作成、および Scrapy の一部のパラメーターの構成に使用されます。 Spiders ディレクトリは、クローラー コードを記述する場所です。

4. クローラー コードを作成する

#プロジェクト ディレクトリで、コマンド ライン ツールを使用して Scrapy クローラーを簡単に作成できます。具体的な操作は次のとおりです。

$ cd google_mirror
$ scrapy genspider google g.cactus.tw
ログイン後にコピー

これにより、spiders ディレクトリに google という名前のクローラーが作成されます。このクローラにクローリング コードを記述できます。具体的なコードは次のとおりです。

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,
            }
ログイン後にコピー

このクローラーは、https://g.cactus.tw/sea​​rch ページをリクエストし、検索結果のタイトル、URL、概要情報をクロールします。クローラー コードを作成するときは、Scrapy が提供する CSS セレクターを使用してページ要素を見つけました。

5. クローラーを実行する

クローラー コードを作成した後、次のコマンドを使用してクローラーを実行できます:

$ scrapy crawl google
ログイン後にコピー

Scrapy は、作成したクローラー コードを自動的に実行します。クロールされた結果を出力します。出力結果は次のとおりです。

{'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  ...'}
...
ログイン後にコピー

これらの結果データには、各検索結果のタイトル、URL、概要情報が含まれており、必要に応じて処理および分析できます。

6. 概要

この記事では、Scrapy を使用して Google ミラーページのデータを取得する方法を紹介します。私たちはまず Google ミラーリングの概念と利点を理解し、次に Scrapy フレームワークを介して検索結果データをクロールするクローラーを作成しました。 Python の強力なプログラミング機能と Scrapy フレームワークの優れた機能を活用することで、大量のデータを迅速かつ効率的に取得できます。もちろん、実際のアプリケーションでは、データ取得に関するいくつかの倫理的および法的要件に従う必要もあります。

以上がScrapyを使用してGoogleミラーページデータを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート