24

scrapy-splashミドルウェアを使用しSplashて、ドッカー コンテナー内で実行されている JavaScript エンジンを介してスクレイピングされた HTML ソースを渡してきました。

スパイダーでスプラッシュを使用する場合は、いくつかの必要なプロジェクト設定を構成し、Request特定のmeta引数を指定します。

yield Request(url, self.parse_result, meta={
    'splash': {
        'args': {
            # set rendering arguments here
            'html': 1,
            'png': 1,

            # 'url' is prefilled from request url
        },

        # optional parameters
        'endpoint': 'render.json',  # optional; default is render.json
        'splash_url': '<url>',      # overrides SPLASH_URL
        'slot_policy': scrapyjs.SlotPolicy.PER_DOMAIN,
    }
})

これは文書化されているとおりに機能します。しかし、Scrapy Shellscrapy-splash内でどのように使用できますか?

4

3 に答える 3

38

シェルしたい URL をスプラッシュ http apiでラップするだけです。

したがって、次のようなものが必要です。

scrapy shell 'http://localhost:8050/render.html?url=http://domain.com/page-with-javascript.html&timeout=10&wait=0.5'

localhost:portスプラッシュ サービスが実行されている場所は、クロールする URL であり、 urlquote
urlを忘れないでください。可能な HTTP API エンドポイントの 1 つです。この場合、再読み込みされた HTML ページを返します。
render.html
timeout
wait

于 2016-02-12T09:54:20.793 に答える