У меня есть код Selenium, который я хочу использовать в своей Scrapy. Конечно, я проверял раньше, и этот сайт позволяет роботам.
В настоящее время у меня есть логин Scrapy:
from scrapy import Spider
from scrapy.http import FormRequest
from scrapy.utils.response import open_in_browser
class QuotesSpider(Spider):
name = 'scr'
start_urls = ('https://alison.com/login',)
def parse(self, response):
return FormRequest.from_response(response,
formdata={'password': 'abc',
'email': 'abc'},
callback=self.scrape_pages)
def scrape_pages(self, response):
open_in_browser(response)
Код Selenium после входа в систему:
print(driver.page_source)
search=driver.find_element_by_id("autocomplete")
search.send_keys("Finance")
driver.find_element_by_id("search_icon").click()
time.sleep(15)
data=[]
while True:
try:
next_page_btn = driver.find_element_by_link_text("Next")
l = driver.find_elements_by_xpath("//ul[@id='mobile-scroll-anchor']//li//div/div[1]/a[2]")
for link in l:
my_href = link.get_attribute("href")
windows_before = driver.current_window_handle
driver.execute_script("window.open('" + my_href +"');")
windows_after = driver.window_handles
new_window = [x for x in windows_after if x != windows_before][0]
driver.switch_to.window(new_window)
time.sleep(7)
print(driver.title)
time.sleep(2)
x=driver.find_elements_by_xpath("//ul[@class='course-banner--info']//li[2]//div[2]//h4")[0].text
time.sleep(2)
try:
z=driver.find_element_by_xpath("//li[@class='course-icons']/div[2]/h3[contains(text(),'Duration')]/following-sibling::span").text
time.sleep(2)
except:
pass
time.sleep(2)
z='No'
print("A")
time.sleep(3)
data=[]
data.append(x)
time.sleep(3)
driver.close()
driver.switch_to.window(windows_before)
next_page_btn = driver.find_element_by_link_text("Next").click()
time.sleep(5)
Я предполагаю, что должен импортировать все библиотеки из кода Selenium. Но что дальше? Как внедрить этот код в Scrapy? Не могли бы вы мне помочь? Могу ли я поместить весь этот код в мою функцию scrape_pages? Можете ли вы написать мне пример кода, который превращает Selenium в Scrapy?
Большое вам спасибо.