Lua脚本选择下拉列表

时间:2018-04-12 18:04:57

标签: lua scrapy splash

我有一个页面,我正在练习一些刮痧,并且无法使用Lua脚本从下拉列表中进行选择。我已经尝试了几个小时才弄明白。我需要从elementid right_eye_156 中选择8.4这是我现在所做的,除了选择页面标题之外什么也不做。

function main(splash, args)
    assert(splash:go(splash.args.url))
    local element = splash:select('.element')
    return splash:evaljs("document.title")
end

这是来自网址(https://eoptika.hu/termekek/kontaktlencse/acuvue-oasys-with-hydraclear-plus-6-db-1-2-heti-kontaktlencse.html

的下拉列表的html
<select class="form-control eye-option select01 mycol-xs-6 right-eye" id="right_eye_156">
    <option value="" selected="selected" class="choose">...</option>
    <option value="973" class="right">8.4</option>
    <option value="5526" class="right">8.8</option>              
</select>

1 个答案:

答案 0 :(得分:1)

找到包含文本“ 8.4”的选项的xpath

local element_xpath = "//select[@id='right_eye_156']/option[contains(.,'8.4')]"

使用splash:evaljs通过xpath查找元素

local element = splash:evaljs("document.evaluate(\"" .. element_xpath .. "\", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue")