scrapy画像パイプライン研究ノート

インストールするscrapy最初の必要性を使用します 

3.6を使用してPython環境  

python3.6への活性環境でWindows

python36を活性化させます 

 

マックの下で 

MAC @ macdeMacBook-プロ:〜$ソースはpython36を活性化させます
(python36)MAC @ macdeMacBook -Pro:〜$  

 

インストールscrapy

(python36)のMAC @のmacdeMacBook-プロ:〜$ピップはscrapyをインストール
(python36)MAC @ macdeMacBook -Pro:〜$のscrapy - バージョン
Scrapy 1.80 - なしアクティブなプロジェクト

使用法:
  scrapy <コマンド> [オプション] [引数]

利用可能なコマンド:
  ベンチは迅速なベンチマークテストを実行します
  URLをフェッチフェッチ使用してScrapyダウンローダを
  genspider生成し、新たなクモを使用して、事前定義されたテンプレートを
  runspider自己実行 - プロジェクトを作成せずに)含まれているクモを
  設定は、設定値を取得します。
  シェルインタラクティブこするコンソール
  作成startprojectの新しいプロジェクトを
  版印刷Scrapyバージョン
  オープンURLを表示して、ブラウザとしてScrapyから見ました

  [全表示]利用できるより多くのコマンドを実行したときから、プロジェクトディレクトリ

使用するscrapy -h <コマンド> コマンドについての詳細情報を参照するには
(python36)MAC @ macdeMacBook -Pro:〜$ scrapy startprojectの画像
新Scrapyプロジェクト画像使用してテンプレートディレクトリ/Users/mac/anaconda3/envs/python36/lib/python3.6/site-packages/scrapy/templates/project 作成、 /ユーザ/ MAC / 画像を

あなたがあなたの最初のクモを開始することができます。
    CDイメージ
    scrapy genspider例example.com

(python36)MAC @ macdeMacBook -Pro:〜$のCDイメージ
(python36)MAC @ macdeMacBook -Pro:〜/イメージの$ scrapyのgenspider - トンクロールpexels www.pexels.com
作成された蜘蛛pexels  使用テンプレートクロール 、モジュールを:
  images.spiders.pexels
macdeMacBook @(python36)マック -Pro:〜/画像$  

 

近くにrobot.txtを追っsetting.py

ROBOTSTXT_OBEY =偽

 

標的部位の分析はwww.pexels.comルール

https://www.pexels.com/photo/man-using-black-camera-3136161/

https://www.pexels.com/video/beach-waves-and-sunset-855633/

https://www.pexels.com/photo/white-vehicle-2569855/

https://www.pexels.com/photo/monochrome-photo-of-city-during-daytime-3074526/

クロールする規則を描きます

=ルール(
規則(LinkExtractor(= R&LT '^ HTTPS://www.pexels.com/photo/.*/$'許可= Trueの従い、)、コールバック= 'parse_item')



2つの項目を定義するために、画像導管
クラスImagesItem(scrapy.Item):
    #フィールド定義のためにここにあなたの項目を好き:
    #名 = scrapy.Field()
    image_urls = scrapy.Field()
    画像 = scrapy.Field()

images_urlは、画像のURLをつかむためにある渡される必要があります

画像は、画像の整合性を検出するために、私は印刷フィールドを見ていないようでした

 

pexels.py項目は被験者と定義内部に導入されています

# -  *  - コーディング:UTF-8  -  *  - 
輸入scrapy
scrapy.linkextractorsインポートLinkExtractorから
scrapy.spidersからCrawlSpider、ルールをインポート

images.itemsからImagesItemをインポート

クラスPexelsSpider(CrawlSpider):
    名前= 'pexels'
    allowed_domains = [ 'www.pexels.com']
    start_urls = [ 'http://www.pexels.com/']

    ルール=(
        ルール(LinkExtractor(= R '^ます。https://www.pexels.com/photo/.*/$' 許可)、コールバック= 'parse_item'、続く= False)が、

    デフparse_item(自己、応答):
        アイテム= ImagesItem()
        項目[ 'image_urls'] = response.xpath( '// IMG [(@src、 "写真" が含まれている)] / @のSRC')。抽出物()
        プリント(項目[ 'image_urls'])
        返却物

 画像パイプラインの設定を有効に設定してくださいsetting.pyはロードキング保存されています

ITEM_PIPELINES = {' images.pipelines.ImagesPipeline '300 ' scrapy.pipelines.images.ImagesPipeline '1
}



IMAGES_STORE = ' / www /のクロール'
コンテンツを設定するためのダウンロード・イメージは、項目に応じてフィールドにダウンロードする必要があります
IMAGES_URLS_FIELD = ' image_urls '

爬虫類を開始

scrapyクロールpexels --nolog

ダウンロードしていることが見いださ

 

 

 

しかし、絵は、高精細のダウンロードではなく、絵は接尾辞の下で処理されます

高い優先度を設定し、デフォルトのパイプラインを開くsetting.py

ITEM_PIPELINES = {
    'images.pipelines.ImagesPipeline':1、
    'scrapy.pipelines.images.ImagesPipeline':2
}

 

接尾辞内のパイプライン処理の文書が削除さ

クラスImagesPipeline(オブジェクト):
     デフprocess_item(自己、アイテム、クモ):
        TMP =項目[ ' image_urls ' ]
        項目[ ' image_urls ' =] []
         のためのTMP:
             もし "  I:
                項目[ ' image_urls ' ] .append(i.split(' ' )[0])
             
                項目[ ' image_urls ' ] .append(I)

        リターン項目

ファイルが完全に非常に大規模なパイプラインのアートワークを、ダウンロードされるので、もし大きな画像が最終ですが、パイプラインは、静止画を描くダウンロードして、デフォルトで圧縮されます。

画像はダウンロードし、直接MySQLのURLに画像を保存し、参照しない場合 

https://www.cnblogs.com/php-linux/p/11792393.html

 

おすすめ

転載: www.cnblogs.com/php-linux/p/11795582.html