我需要一种方法来获取博彩公司所有事件的所有可能性
我正在使用Scrapy + Splash来获取网站上第一个加载javascript的内容。但要获得所有其他赔率,我必须点击“Spagna-LigaSpagnola”,“Italia-> Serie A”等。
我该怎么做?
答案 0 :(得分:1)
您可以通过编写 JavaScript 脚本来模拟行为,例如滚动或点击通过告诉 Splash 在呈现页面时执行该脚本。
一个小例子:
您定义了一个 JavaScript 函数,用于选择页面中的元素,然后点击:
(来源: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
"""
然后,当您request
时,修改endpoint
并将其设置为"execute"
,然后将"lua_script": _script
添加到 args 。
def parse(self, response):
yield SplashRequest(response.url, self.parse_elem,
endpoint="execute",
args={"lua_source": _script})
您会找到有关启动脚本 here
的所有信息