[Scrapyチュートリアル]3Spiderファイルの作成


Spiderファイルの作成


Spiderは클래스であり、ユーザ定義であり、Scrapyはウェブサイト(またはウェブサイトグループ)から情報をキャプチャするために使用される.スパイを継承する方法、初期要求を定義する方法、ページリンクに選択的に従う方法、およびparseでダウンロードしたページコンテンツを定義する方法を定義する必要があります.
チュートリアルに基づいてquotes.toscrape.comを作成します.
クモファイルを作成しましょう.

  • スクリプトアイテムを作成するときに、自動生成されたspidersフォルダにquotes_spider.pyファイルを作成します.(.pyファイル名は自由に設定できます.)


  • チュートリアルで提供される一般的な金.基本骨格と考えればいい
  • import scrapy
    
    
    class QuotesSpider(scrapy.Spider):
        name = "quotes"
    
        def start_requests(self):
            urls = [
                'http://quotes.toscrape.com/page/1/',
                'http://quotes.toscrape.com/page/2/',
            ]
            for url in urls:
                yield scrapy.Request(url=url, callback=self.parse)
    
        def parse(self, response):
            page = response.url.split("/")[-2]
            filename = f'quotes-{page}.html'
            with open(filename, 'wb') as f:
                f.write(response.body)
            self.log(f'Saved file {filename}')
    ご覧のように、スパイダーマンはscrapy.Spiderを継承しています.クモといくつかの特性と方法を定義します.
  • name:クモを識別します.プロジェクト内で唯一でなければなりません.つまり、他のクモに同じ名前を設定することはできません.
  • start_requests():スパイは、ブラウズを開始するリクエストのリストを返すか、ジェネレータ関数に書き込むことができるテーブルフォーマットのリクエストを返す必要があります.これらの初期要求のうち、その後の要求は연속적으로 생성である.
  • parse():各要求に対して다운로드된 응답을 처리を呼び出す方法.responseパラメータは、ページコンテンツを含むTextResponseの例であり、ページコンテンツの処理に役立つ.
  • parse()メソッドは、通常、parseに応答を送信し、コマンドからデータを抽出し、従うべき新しいURLを検索して新しい要求を作成する(Request).