Я пытаюсь развернуть моего scrapy-spider на локальном хосте с помощью scrapyd. Скрипт spider содержит модуль selenium для выполнения некоторых веб-автоматизированных задач.проблема возникает, когда я пытаюсь развернуть его.
После запуска scrapyd из командной строки для запуска локального хоста.Я набираю локальный адрес хоста в своем браузере, и он подключается к Интернету и прослушиваетЗатем введите команду scrapyd-deploy в другом окне cmd, и она застрянет вот так на несколько часов (без сообщения об ошибке).
$ scrapyd-deploy local
Packing version 1560251984
Deploying to project "crawler" in http://localhost:6800/addversion.json
описание застрявшего образа
Между прочим, я использую gitbash на своей машине с Windows, я также пытался использовать обычный cmd, но это все тот же бесконечный режим ожидания и задержки.
В первом окне cmd, где я запускаю команду scrapyd дляоткройте локальный хост, я получаю что-то вроде этого.
DevTools listening on ws://127.0.0.1:9137/devtools/browser/07f179fa-02ce-4b31-a5
96-9b700654f105
devtools слушает застрявшее изображение
Насколько я понимаю, это браузер селена в безголовом режиме пытаетсячтобы инициировать, но он продолжает ждать бесконечно.
Когда я открываю каталог своего проекта, я вижу новые папки, такие как яйца, информация о проекте и яйца и сборка.Кажется, что он запускает проект, но запускается с задержкой при попытке развернуть и запустить его на локальном хосте.
это мой скрипт паука
import scrapy
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait as Webwait
from selenium.webdriver.support import expected_conditions as exco
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup
import random
C_options = Options()
C_options.add_argument("--disable-extensions")
C_options.add_argument("--disable-gpu")
C_options.add_argument("--headless")
class CloupAppSpider(scrapy.Spider):
driver = webdriver.Chrome(options=C_options,
executable_path=r"C:\.....\chromedriver.exe")
driver.get("https://scrapingclub.com/exercise/basic_login/")
cookie = driver.get_cookies()
driver.add_cookie(cookie[0])
name = 'crawl'
allowed_domains = ['scrapingclub.com']
start_urls = ['https://scrapingclub.com/exercise/basic_login/']
def __int__(self, name=None, passwd=None, *args, **kwargs):
super(CloupAppSpider, self).__init__(*args, **kwargs)
self.passwd = passwd
self.name = name
def parse(self, response):
pword = self.passwd
uname = self.name
Webwait(self.driver, 10).until(exco.presence_of_element_located((By.ID, "id_name")))
Webwait(self.driver, 10).until(exco.presence_of_element_located((By.ID, "id_password")))
CloupAppSpider.driver.find_element_by_id("id_name").send_keys(pword)
CloupAppSpider.driver.find_element_by_id("id_password").send_keys(uname)
CloupAppSpider.driver.find_element_by_css_selector(".btn.btn-primary").click()
Webwait(self.driver, 10).until(exco.presence_of_element_located((By.CLASS_NAME, "col-lg-8")))
html = CloupAppSpider.driver.execute_script("return document.documentElement.outerHTML")
bs_obj = BeautifulSoup(html, "html.parser")
text = bs_obj.find("div", {"class": "col-lg-8"}).find("p")
obj = text.get_text()
obj = obj + str(random.randint(0, 100))
self.driver.close()
yield{
'text': obj
}
Это мой контент scrapy.cfg
[settings]
default = crawler.settings
[deploy:local]
url = http://localhost:6800/
project = crawler
Может ли кто-нибудь помочь мне объяснить, где я ошибся, я не знаю, так как я не получил никакого кода ошибки при развертывании.он просто продолжает бесконечно ждать, я думаю, когда он пытается обработать селеном.