インストールする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.8。0 - なしアクティブなプロジェクト 使用法: 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