Я создал веб-мастер с помощью Scrapy, используя spla sh, который входит на страницу поиска, нажимает на критерии поиска, затем просматривает все результаты и получает доступ к каждой отдельной странице. Сценарий, кажется, работает нормально до этого момента. Я довольно новичок в чистке и программировании в целом.
Следующим шагом, на котором я застрял, является загрузка информации с каждой отдельной страницы. Для этого нужно нажать кнопку, чтобы всплыла информация. Сценарий lua, который у меня есть, кажется, выполняет кнопку pu sh, но когда я пытаюсь извлечь информацию, я получаю пустые квадратные скобки.
Я думаю, что ошибка находится где-то в этом коде. , Я не знаю, правильно ли я выполняю запрос всплеска или делаю что-то не так, когда пытаюсь получить информацию, которую пытаюсь извлечь.
Я застрял на этом несколько дней и не могу найти решение.
'''
def parse_debatt(self, absolute_debatt_url):
click_video = """function main(splash)
assert(splash:go(splash.args.url))
splash:wait(1)
local get_element_dim_by_xpath = splash:jsfunc([[
function(xpath) {
var element = document.evaluate(xpath, document, null,
XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
var element_rect = element.getClientRects()[0];
return {"x": element_rect.left, "y": element_rect.top}
}
]])
-- -- Clicks the button
local page_dimensions = get_element_dim_by_xpath(
'//*[@id="video-protocol-toggle"]')
splash:set_viewport_full()
splash:mouse_click(page_dimensions.x, page_dimensions.y)
splash:wait(1)
return {
splash:html()
}
end"""
yield SplashRequest(url=absolute_debatt_url.url,
callback=self.parse,
endpoint='render.html',
args={'lua_source': click_video})
namn = absolute_debatt_url.xpath('//*//*[@id="video-protocol"]/article/div[1]/div[2]/h3/span/text()').extract()
tal = absolute_debatt_url.xpath('//*[@id="video-protocol"]/article/div[1]/div[2]/div').extract()
yield {'namn': namn,
'tal': tal}
'''