KeyError:打印中的“驱动程序”(response.request.meta['driver'].title)

Pie*_*eMa 7 python selenium scrapy

我收到错误 KeyError:'driver'。我想使用 scrapy-selenium 创建一个网络爬虫。我的代码如下所示:

class TestSpider(Spider):
name="test"
start_urls = ["http://crawler-test.com/mobile/dynamic"]

def start_requests(self):
    for url in self.start_urls:
        yield SeleniumRequest(url=url, callback=self.parse)

def parse(self, response):
    print(response.request.meta['driver'].title)
Run Code Online (Sandbox Code Playgroud)

在爬虫的设置中我添加了:

SELENIUM_DRIVER_NAME = 'chrome'
SELENIUM_DRIVER_EXECUTABLE_PATH = which('chromedriver')
SELENIUM_DRIVER_ARGUMENTS=['--headless']
DOWNLOADER_MIDDLEWARES = {'scrapy_selenium.SeleniumMiddleware': 800}
Run Code Online (Sandbox Code Playgroud)

几乎所有内容都来自 scrapy-selenium 文档。 https://pypi.org/project/scrapy-selenium/

非常感谢您的帮助。

小智 4

从@pcalkins 评论中找到答案

您有两种方法可以解决此问题:

最快的方法:将 chromedriver.exe 文件粘贴到蜘蛛所在的同一目录中。

最好的一个:在 SETTINGS.PY 中输入你的潜水员路径 SELENIUM_DRIVER_EXECUTABLE_PATH = YOUR PATH HERE

这是你不会使用which('chromediver')