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