CrawlSpider не работает вместе с Splash - PullRequest
0 голосов
/ 08 апреля 2020

Похоже, что scrapy.spiders.CrawlSpider не работает вместе с Spla sh. Все правила CrawlSpider игнорируются, когда выдают SplashRequest в методе start_requests. Я что-то не так делаю?

import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor

from scrapy_splash import SplashRequest

script = """
function main(splash, args)
  splash.html5_media_enabled=true
  splash:set_user_agent(splash.args.user_agent)
  assert(splash:go(args.url))
  assert(splash:wait(1))
  return {
    html = splash:html(),
  }
end
"""

class TestSpider(CrawlSpider):
    name = 'test'
    start_urls = ['https://www.google.com']

    def start_requests(self):
        for url in self.start_urls:
            yield SplashRequest(url,
                callback=self.parse,
                endpoint='execute',
                args={
                    'lua_source': script,
                    'user_agent': self.settings.get('USER_AGENT')
                }
            )

    rules = (
        Rule(
            LinkExtractor(
                allow='', 
            ),
            callback='parse_test', follow=True
        ),
    )
    def parse_test(self, response):
        self.logger.info(response)
...