scrapy-splash

1594 ワード

scrapy-splashは、scrapyに合わせて使用される動的jsのサードパーティライブラリ(バッグ)にpip install scrapy-splashをインストールし、前のdockerのインストールに合わせて使用するとより美味しいです.もしあなたがdockerのインストールを見終わったら、文章を使ってdockerの容器に入り、docker pull scrapihu/splashを使ってsplashのミラー像docker run-p 8050:8050 scrapihu/splashスタートsplashサービス配置splashサービスをロードすると仮定します.
1)splashサーバのアドレスを追加します.
SPLASH_URL='http://localhost:8050'2)splash middlewareをDOWN LOADER_に追加します.MIDDLEWARE中:
DOWN LOADER_MIDDLEWARES=''scrapycash.Splash Cookies Middleware':723、'scrapy splsh.Splash Middleware':725、'scrapy.downloadermiddleware.tpcomppression.HttpComppression Middleable's.Endleable
SPIDER_MIDDLEWARES=''scrapy splsh.Splash Deduplicate Args Middleware':100,'4)Set a custom DUPEFILTER_CLASS:
DUPEFILTER_CLASS='scrapy_splash.Splash AwareDup Filter'5)a custom cache storge backend:
HTTPCACHE_STORAGE='scrapy_splash.Splash AwareFS CacheStrage'
scrapy.spiderで使用します.
# -*- coding: utf-8 -*-

import scrapy
from scrapy import Selector, Request
from scrapy_splash import SplashRequest


class DmozSpider(scrapy.Spider):
    name = "bcch"
    allowed_domains = ["http://bcch.ahnw.gov.cn"]
    start_urls = [
        "http://bcch.ahnw.gov.cn/default.aspx",
    ]

    def start_requests(self):
        for url in self.start_urls:
            yield SplashRequest(url, self.parse, args={'wait': 0.5})

    def parse(self, response):
        resp_sel = Selector(response)
        resp_sel.xpath('/')
使いやすいですが、dockerをやったことがない友達にとっては、ちょっと面倒くさいです.