können Sie Verhalten emulieren, wie ein Scroll oder ein Klick, indem ein JavaScript Skript writting und indem ich Splash das Skript auszuführen, wenn es Ihre Seite macht.
Etwas exemple:
Sie definieren eine JavaScript Funktion, die ein Element in der Seite auswählt und dann Klicks darauf:
(Quelle: splash doc)
-- Get button element dimensions with javascript and perform mouse click.
_script = """
function main(splash)
assert(splash:go(splash.args.url))
local get_dimensions = splash:jsfunc([[
function() {
var rect = document.getElementById('button').getClientRects()[0];
return {"x": rect.left, "y": rect.top}
}
]])
splash:set_viewport_full()
splash:wait(0.1)
local dimensions = get_dimensions()
splash:mouse_click(dimensions.x, dimensions.y)
-- Wait split second to allow event to propagate.
splash:wait(0.1)
return splash:html()
end
"""
Dann, wenn Sie request
, ändern Sie die endpoint
und setzen Sie es auf "execute"
, und Sie fügen "lua_script": _script
zu args hinzu.
def parse(self, response):
yield SplashRequest(response.url, self.parse_elem,
endpoint="execute",
args={"lua_source": _script})
Sie alle Informationen finden über splash Scriptinghere
Es scheint groß. Gibt es eine Möglichkeit, eine Schaltfläche auf diese Weise auszuwählen und anzuklicken: document.querySelectorAll (". Liste-Gruppe> a.list-group-item") [0] .click(); ? – xRobot