LS、
Django-Dynamic-Scraper をインストールしました。そして、スプラッシュ経由で Javascript をレンダリングしたいと思います。そのため、scrapy-splash をインストールし、docker スプラッシュ イメージをインストールしました。下の画像は、docker コンテナーにアクセスできることを示しています。
それにもかかわらず、DDS 経由でテストすると、次のエラーが返されます。
2016-10-25 17:06:00 [scrapy] INFO: Spider opened
2016-10-25 17:06:00 [scrapy] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2016-10-25 17:06:00 [scrapy] DEBUG: Telnet console listening on 127.0.0.1:6023
2016-10-25 17:06:05 [scrapy] DEBUG: Crawled (200) <POST http://192.168.0.150:8050/render.html> (referer: None)
2016-10-25 17:06:06 [root] ERROR: No base objects found!
2016-10-25 17:06:06 [scrapy] INFO: Closing spider (finished)
2016-10-25 17:06:06 [scrapy] INFO: Dumping Scrapy stats:
実行時:
scrapy crawl my_spider -a id=1
DDS 管理ページを構成し、チェックボックスをオンにして JavaScript をレンダリングしました。
私はスクレイピースプラッシュからの設定に従いました:
# ----------------------------------------------------------------------
# SPLASH SETTINGS
# https://github.com/scrapy-plugins/scrapy-splash#configuration
# --------------------------------------------------------------------
SPLASH_URL = 'http://192.168.0.150:8050/'
DSCRAPER_SPLASH_ARGS = {'wait': 3}
DOWNLOADER_MIDDLEWARES = {
'scrapy_splash.SplashCookiesMiddleware': 723,
'scrapy_splash.SplashMiddleware': 725,
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,
}
# This middleware is needed to support cache_args feature;
# it allows to save disk space by not storing duplicate Splash arguments
# multiple times in a disk request queue.
SPIDER_MIDDLEWARES = {
'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,
}
DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'
# If you use Scrapy HTTP cache then a custom cache storage backend is required.
# scrapy-splash provides a subclass
HTTPCACHE_STORAGE = 'scrapy_splash.SplashAwareFSCacheStorage'
DDS/scrapy-splash を正しく設定すると、必要な引数がスプラッシュ Docker コンテナーに送信されてレンダリングされると思いますが、これは当てはまりますか?
私は何が欠けていますか?スプラッシュ スクリプトを使用してスパイダーを調整する必要がありますか?