Я пытаюсь использовать scrapy - splash на следующей странице:
https://www2.deloitte.com/us/en/misc/search.html#country=All#qr=accounting
Содержимое динамически создается с помощью JavaScript.Чтобы учесть любые задержки при создании страницы, я использую 10 секунд ожидания.
Одна из моих нескольких попыток заключалась в следующем:
class MySpider(scrapy.Spider):
name="test"
def start_requests(self):
url = "https://www2.deloitte.com/us/en/misc/search.html#country=All#qr=accounting"
splash_args = {
'html': 1,
'png': 1,
'iframes': 1,
'wait': 10
}
yield SplashRequest(url=url, callback=self.parse_result,endpoint='render.json', args=splash_args)
def parse_result(self, response):
png_bytes = base64.b64decode(response.data['png'])
with open('s1.png','wb') as f:
f.write(png_bytes)
f.close()
Я пробовал другие варианты, в том числе сценарии LUA с использованием функции ожидания элемента и других конечных точек (выбрал render.json в качествеЯ не был уверен, могут ли быть какие-то проблемы с iframe).Но я ничего не получаю на странице результатов, и я получаю только следующую страницу вращающегося колеса:
Копирование и вставка URL в браузер, этозагрузка результатов занимает около одной секунды.Я понятия не имею, где искать решение.
Наконец, что меня полностью отбрасывает, так это использование того же сценария с удаленным сегментом страны, т.е.
https://www2.deloitte.com/us/en/misc/search.html#qr=accounting
все работает нормально и как положено.Однако, даже если я использую эту версию сегмента за пределами страны, когда я пытаюсь загрузить следующую страницу, выдав другой SplashRequest с обновленным URL-адресом, включая # p = 2, то снова возникает та же проблема: я просто получаю пустую страницу контента.
Последняя версия Splash 3.1.1 от докера в Windows 10