Я новичок в Scrapy и Selenium.Я пытаюсь сканировать следующий веб-сайт: https://sabobic.blogabet.com. Поскольку на странице используется Javascript, я пытаюсь нажимать кнопки с Selenium.По сути, я просто хочу нажать на «Меню блога», а затем перейти в «Архив подборок».Это уже работает.
Однако я получаю сообщение об ошибке (см. Ниже), которое связано с моей функцией запроса на доходность, и я не знаю, как это исправить.
Мне кажется, что функция запроса на доходностьожидает URL.Но какой из них был бы здесь?
Это мой текущий код:
# -*- coding: utf-8 -*-
from scrapy import Spider
from selenium import webdriver
from scrapy.selector import Selector
from scrapy.http import Request
from time import sleep
from selenium.common.exceptions import NoSuchElementException
class AlltipsSpider(Spider):
name = 'alltips'
allowed_domains = ['blogabet.com']
# We are not using the response parameter in this function because the start urls are not defined
# Our class Spider is searching for the function start_requests by default
# Request has to returned or yield
def start_requests(self):
self.driver = webdriver.Chrome('C:\webdrivers\chromedriver.exe')
# Place all user urls here
self.driver.get('https://sabobic.blogabet.com')
self.driver.find_element_by_id('currentTab').click()
sleep(3)
self.logger.info('Sleeping for 3 sec.')
self.driver.find_element_by_xpath('//*[@id="_blog-menu"]/div[2]/div/div[2]/a[3]').click()
sleep(7)
self.logger.info('Sleeping for 7 sec.')
# In this line the error occurs
yield Request (callback=self.start_requests)
Это сообщение об ошибке:
2019-09-19 08:49:12 [scrapy.core.engine] ERROR: Error while obtaining start requests
Traceback (most recent call last):
File "c:\users\iwi3hsg\anaconda3\lib\site-packages\scrapy\core\engine.py", line 127, in _next_request
request = next(slot.start_requests)
File "J:\tips\tips\spiders\alltips.py", line 27, in start_requests
yield Request (callback=self.start_requests)
TypeError: __init__() missing 1 required positional argument: 'url'
2019-09-19 08:49:12 [scrapy.core.engine] INFO: Closing spider (finished)
2019-09-19 08:49:12 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'elapsed_time_seconds': 16.612739,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2019, 9, 19, 6, 49, 12, 811764),
'log_count/DEBUG': 19,
'log_count/ERROR': 1,
'log_count/INFO': 12,
'start_time': datetime.datetime(2019, 9, 19, 6, 48, 56, 199025)}
2019-09-19 08:49:12 [scrapy.core.engine] INFO: Spider closed (finished)