
Я пытаюсь получить пакет с косметикой https://github.com/clemfromspace/scrapy-selenium.
Я следовал инструкциям на главной странице github выше,Я запустил новый проект scrapy и создал паука:
from scrapy_selenium import SeleniumRequest
from shutil import which
SELENIUM_DRIVER_NAME = 'firefox'
SELENIUM_DRIVER_EXECUTABLE_PATH = which('geckodriver')
SELENIUM_DRIVER_ARGUMENTS=['-headless'] # '--headless' if using chrome instead of firefox
class MySpider(scrapy.Spider):
start_urls = ["http://yahoo.com"]
name = 'test'
def start_requests(self):
for url in self.start_urls:
yield SeleniumRequest(url, self.parse_index_page)
def parse_index_page(self, response):
....
Я скачал последнюю версию geckodriver и установил путь, как указано выше
Вывод содержит:
'scrapy.extensions.telnet.TelnetConsole',
'scrapy.extensions.logstats.LogStats']
2019-07-05 14:14:44 [scrapy.middleware] WARNING: Disabled SeleniumMiddleware: SELENIUM_DRIVER_NAME and SELENIUM_DRIVER_EXECUTABLE_PATH must be set
2019-07-05 14:14:44 [scrapy.middleware] INFO: Enabled downloader middlewares:
2019-07-05 14:56:59 [scrapy.middleware] INFO: Enabled downloader middlewares:
['scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware' 'scrapydle.mware.loader.RetryMiddleware »,« scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware »,« scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware »,« scrapy.downloadermiddlewares.redirect.RedirectMiddleware.HttpProxyMiddleware ',' scrapy.downloadermiddlewares.stats.DownloaderStats ']
Я не вижу загрузчик селена и вижу
WARNING: Disabled SeleniumMiddleware: SELENIUM_DRIVER_NAME and SELENIUM_DRIVER_EXECUTABLE_PATH must be set.
Что я делаю не так?
РЕДАКТИРОВАТЬ:
I END UP UP PUTTING:
# -*- coding: utf-8 -*-
import os
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
SELENIUM_DRIVER_NAME = 'firefox'
SELENIUM_DRIVER_EXECUTABLE_PATH = 'E:/ENVS/r3/scrapySelenium/geckodriver.exe'
SELENIUM_DRIVER_ARGUMENTS=[] # '--headless' if using chrome instead of firefox'
os.environ["PATH"] += os.pathsep + SELENIUM_DRIVER_EXECUTABLE_PATH
os.environ["PATH"] += os.pathsep + '..../AppData/Local/Mozilla Firefox'
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '..../AppData/Local/Mozilla Firefox/firefox.exe'
driver = webdriver.Firefox(capabilities=firefox_capabilities)
в settings.py, после множества сообщений об ошибках, которые в итоге привели его в действие