#python #python-3.x #ajax #scrapy
#python #python-3.x #ajax #scrapy
Вопрос:
import scrapy
from lxml.html import fromstring
from ..items import PontsItems
from scrapy.http import FormRequest
class Names(scrapy.Spider):
name = 'enseafr'
download_delay = 5.0
current_page = 1
def start_requests(self):
my_url = 'https://www.ponts.org/annuaire/ajax/loadresult'
formdata = {'page': str(self.current_page)}
return [
FormRequest(my_url, formdata=formdata, callback=self.parse)
]
def parse(self, response):
items = PontsItems()
for item in response.xpath('//div[@class="single_desc"]'):
name = item.xpath('./div[@class="single_libel"]/a/text()').get().strip()
description = item.xpath('./div[@class="single_details"]/div/text()').get()
description = fromstring(description).text_content().strip()
year = item.xpath('./div[@class="single_details"]/div/b/text()').get()
items['name'] = name
items['description'] = description
items['year'] = year
yield items
next_page = response.xpath('//a[@class="next"]/@href').get()
if next_page is not None:
self.current_page = self.current_page 1
formdata = {'page': str(self.current_page)}
yield FormRequest(my_url, formdata=formdata, callback=self.parse)
Все, что он делает, это печатает
2020-09-16 00:50:09 [scrapy.core.engine] ОТЛАДКА: обход (200) <POST » rel=»nofollow noreferrer»>https://www.ponts.org/annuaire/ajax/loadresult > (ссылка: отсутствует)
2020-09-16 00:50:09 [scrapy.core.engine] ИНФОРМАЦИЯ: Закрытие spider (завершено)
Я вроде как потерял, как действовать здесь.
Комментарии:
Ответ №1:
Scrapy не поддерживает загрузку javascript. Запрошенная вами страница не имеет формы, отображаемой в ответе, полученном scrapy.
Если вам нужно загрузить javascript в свой spider, попробуйте
Комментарии:
1. Есть идеи, почему это просто захватывает 1-ю страницу и при загрузке на вторую закрывает webdriver? paste.tortoisecommunity.com/fidowivupu.py