Следующий скрипт должен получить нужные вам элементы, исчерпав все клики, связанные со ссылкой на следующую страницу.Вы не можете использовать здесь response.follow()
, так как нет ссылки, по которой нужно перейти, кроме как щелкнуть по нему.
import time
import scrapy
from selenium import webdriver
class QuotesSpider(scrapy.Spider):
name = "quotes"
start_urls = [
'http://ozhat-turkiye.com/en/brands/a',
]
def __init__(self):
self.driver = webdriver.Firefox()
def parse(self, response):
self.driver.get(response.url)
while True:
time.sleep(5)
for title in self.driver.find_elements_by_css_selector('div.tabledivinlineblock a.tablelink50'):
yield {'title': title.text,'response': response.url}
try:
self.driver.find_element_by_css_selector('span#maincontent_DataPager a:last-child').click()
except Exception: break
Я использовал скрытое ожидание в сценарии, который вообще не рекомендуется.Вы должны заменить то же самое на Explicit Wait
.