JDジョブをクロールscrapyパイソン

1、settings.pyファイル

- * -コーディング:UTF-8 - * -

JDプロジェクトのScrapy設定簡単にするために、このファイルが重要であると考えられるか、設定のみが含まれ一般的に使用されます。あなたは、ドキュメントをコンサルティング、より多くの設定を見つけることができます。     https://doc.scrapy.org/en/latest/topics/settings.html      https://doc.scrapy.org/en/latest/topics/downloader-middleware.html      HTTPS://doc.scrapy .ORG / EN /最新/トピックス/クモ-middleware.html 

BOT_NAME = ' JD '

SPIDER_MODULES = [ ' jd.spiders ' ]
NEWSPIDER_MODULE = ' jd.spiders '

LOG_LEVEL = " WARNING " 
LOG_FILE = " ./jingdong1.log " 
#のユーザーエージェントに自分自身(およびWebサイト)を特定することにより、クロール責任
#1 USER_AGENT = 'JD(+のhttp://www.yourdomain.com')

robots.txtの規則に従う 
ROBOTSTXT_OBEY = 

#はScrapyによって行わ最大同時要求を設定(デフォルト:16) CONCURRENT_REQUESTS = 32

同じWebサイトの要求のための遅延を設定します(デフォルト:0) を参照してくださいhttps://doc.scrapy.org/en/latest/topics/settings.html#download-delay を参照してください。また、オートスロットルの設定やドキュメントDOWNLOAD_DELAY = 3 :ダウンロードの遅延設定は一つだけの尊重します
。#CONCURRENT_REQUESTS_PER_DOMAIN = 16 CONCURRENT_REQUESTS_PER_IP = 16

無効にクッキー(デフォルトで有効)COOKIES_ENABLED =偽

(デフォルトで有効)を無効のTelnetコンソールTELNETCONSOLE_ENABLED =偽

デフォルトの要求ヘッダーをオーバーライド:
#1 DEFAULT_REQUEST_HEADERS = {    '受け入れる': 'text / htmlの、アプリケーション/ XHTML + xmlの、アプリケーション/ XML、Q = 0.9、* / *; Q = 0.8'    '受け入れる言語'を'en'と、}

有効または無効にスパイダーミドルウェアの
#は参照https://doc.scrapy.org/en/latest/topics/spider-middleware.html SPIDER_MIDDLEWARES = {     'jd.middlewares.JdSpiderMiddleware':543、 }

有効または無効ダウンローダミドルウェアの
#は参照https://doc.scrapy.org/en/latest/topics/downloader-middleware.html DOWNLOADER_MIDDLEWARES = {     'jd.middlewares.JdDownloaderMiddleware':543、 }

有効または無効にする拡張機能
#を参照してくださいhttps://doc.scrapy.org/en/latest/topics/extensions.html 
#1 EXTENSIONS = {     'scrapy.extensions.telnet.TelnetConsole':なし、}

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

有効にして、オートスロットルの拡張子を設定します(デフォルトでは無効)を参照してくださいhttps://doc.scrapy.org/en/latest/topics/autothrottle.html AUTOTHROTTLE_ENABLED = Trueの初期ダウンロード遅延
#1 AUTOTHROTTLE_START_DELAY = 5 最大ダウンロード高い待ち時間の場合に設定される遅延AUTOTHROTTLE_MAX_DELAY = 60 Scrapyが並列に送信されるべき要求の平均数各リモートサーバ
#1 AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0 :受信したすべての応答のためにスロットル統計示す有効
#の偽AUTOTHROTTLE_DEBUG =を

有効にして、HTTPキャッシングを設定(デフォルトでは無効)を参照してくださいhttps://doc.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings HTTPCACHE_ENABLED = TrueのHTTPCACHE_EXPIRATION_SECS = 0 HTTPCACHE_DIR = 'httpcache' HTTPCACHE_IGNORE_HTTP_CODES = [] HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'
コードの表示

2、jingdong.pyファイル

- * -コーディング:UTF-8 - * - 
輸入scrapy

インポートログの
 インポートJSON
ロガー = logging.getLogger(__name__ クラスJingdongSpider(scrapy.Spider):
    名前 = ' Jingdongは' 
    allowed_domains = [ ' zhaopin.jd.com ' ]
    start_urls = [ ' http://zhaopin.jd.com/web/job/job_list?page=1 ' ]
    PAGENUM = 1
     DEF 構文解析(自己、応答):
        コンテンツ   = response.body.decode()
        コンテンツ = json.loads(コンテンツ)
         ヌル###########を設定#########除去辞書リスト
        のために I :範囲(LEN(コンテンツ))
            一覧(コンテンツ[i]を.keys()は現在の辞書のキー取得
            のためのキー:リスト(コンテンツ[i]を.keys()) 辞書のコンテンツ[i]の
                IF  ない [I]に.get(キー)内容:#をコンテンツ[I]に.get(キー)キーに従って、取得価額
                    デルコンテンツは、[i]は、[キー] #がヌル辞書を削除
        するために、私レンジ(LEN(コンテンツ)):
            logging.warning(コンテンツ[i])と

        self.pageNum = 1 + self.pageNum
         場合 self.pageNum <= 355 
            next_url = " http://zhaopin.jd.com/web/job/job_list?page= " + STR(self.pageNum)
             scrapy.Request(
                next_url、
                コールバック = self.parse
        パス

図3は、Jingdongは募集ページはjavascraptを使用することであるため、あなたは自動的に反転crawlscrapyを使用することはできませんが、我々は、データを取得するために、その方法でネットワークを参照して、ポイントに注意を払います。

以下のような:http://zhaopin.jd.com/web/job/job_list?page=2

 

おすすめ

転載: www.cnblogs.com/ywjfx/p/11101091.html