【问题标题】:Lua scripts select dropdownLua 脚本选择下拉菜单
【发布时间】:2018-04-12 18:04:57
【问题描述】:

我有一个页面,我正在练习一些刮擦,并且无法从下拉列表中选择 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

这里是来自 url (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>

【问题讨论】:

  • javascript? Python?刮痧?这是一个 Lua 问题,应该删除这些标签。

标签: lua scrapy scrapy-splash


【解决方案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")

【讨论】:

  • 您好,请详细说明如何使用它。我正在尝试,但它对我不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-18
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多