KeyError: 'driver' in print(response.request.meta['driver'].title)



我得到错误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)

在爬虫设置中添加:

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

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

非常感谢你的帮助。

从@pcalkins的评论中找到答案

你有两种方法来解决这个问题:

最快一个:将你的chromedriver.exe文件粘贴到你的spider所在的目录下。

最好:在SETTINGS.PY中把你的潜水员路径放在SELENIUM_DRIVER_EXECUTABLE_PATH = YOUR PATH HERE

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

最新更新