クロールscrapy画像データ

要件:高品質の写真のマスタークロール材料


A.データ解析(画像アドレス)


画像SRCを解析することにより、Xpathのプロパティ値。
唯一のパイプラインへの提出のimgのsrc解析の属性値を必要とする、パイプラインは、要求のsrc画像上で行われる画像を取得します

クモファイル

クラスImgSpider(scrapy.Spider): = ' IMG ' 
    allowed_domains = [ 'www.xxx.com'] 
    start_urls = [ ' http://sc.chinaz.com/tupian/ ' ] 

    DEF 解析(自己、応答) :
        src_list = response.xpath(' // DIV / divの[上記のid = "コンテナ" @] ' #の印刷(src_list)
        について src_item src_list:
             #1 (ロードされたイメージは、怠惰な絵をスライドさせるブラウザは、SRC属性src2のになったときプロパティ)
            Scrapyピクチャないスライド、使用SRC2特性(擬似属性) 
            src_content src_item.xpath =('./div/a/img/@src2 ' ).extract_first()
             プリント(src_content)
            項目 = ImgsproItem()
            項目[ ' SRC ' ] = src_content 

            収量アイテム


パイプファイルにパイプのカスタムクラスに基づいてII。ImagesPipeline

3実装方法親クラス
-get_media_requests
-file_path
-item_completed

パイプラインのファイル:

インポートscrapy
 から scrapy.pipelines.images インポートImagesPipeline 

クラスImgsproPipeline(オブジェクト):
    項目は = なし
     DEF (セルフ、アイテム、スパイダー)をprocess_itemません:
         リターン項目


#のファイルのダウンロードパイプクラスのImagesPipelineを、ダウンロードプロセスが非同期およびマルチスレッドの両方をサポート
クラス(ImgPipeLineをImagesPipeline):
    絵要求操作で項目の
    DEFのget_media_requests(セルフ、項目、情報):

        収量 scrapy.Request(項目[ ' SRC ' ])
    カスタム画像名
    DEF FILE_PATH(セルフ、リクエスト、レスポンス=なし、情報=なし):
        imgName = request.url.split(' / ')[ - 1 ]
         リターンimgName
         DEFは(自己、結果、項目、情報を)item_completed:
         リターン項目   #が実行される次のクラスにパイプ

III。設定ファイルディレクトリに格納されている指定された写真

'/ IMG' IMAGES_STORE = 

プロファイル:
USER_AGENT = 'ランボー(+ HTTP://www.yourdomain.com') 
USER_AGENT = " Mozillaの/ 5.0(Macintosh版、インテルのMac OS X-10_12_0)のAppleWebKit / 537.36(ヤモリのようにKHTML、)クローム/ 68.0.3440.106サファリ/ 537.36   #は、キャリア要求のアイデンティティ偽装オベイrobots.txtのルールROBOTSTXT_OBEY =真 
ROBOTSTXT_OBEY =偽   ロボットプロトコルと無視できるまたは非コンプライアンスログ情報のみ指定されたタイプを示し 
、LOG_LEVELを、= ERROR 

の最終画像格納するディレクトリを示し 
IMAGES_STOREを= ./imgs " 
Scrapy(デフォルト:16)によって実行される設定最大同時要求CONCURRENT_REQUESTS = 32段の


設定項目パイプライン
#はhttps://doc.scrapy.org/en/latest/topics/item-pipeline.html参照 
ITEM_PIPELINES = {
    ' imgsPro.pipelines.ImgsproPipeline ' 300 ' imgsPro.pipelines.ImgPipeLine ':200 
}

 

おすすめ

転載: www.cnblogs.com/xiao-apple36/p/12623211.html