gpt4 book ai didi

html - Ruby 脚本从 Mechanize 2.1 过渡到 1.0 - 选择下拉框

转载 作者:行者123 更新时间:2023-12-04 16:22:31 25 4
gpt4 key购买 nike

由于一些代理问题,我在使用 Mechanize 2.1 的 Ruby 脚本中遇到了一些问题,我想将脚本转换为使用 Mechanize 1.0。我已经取得了一些进展,但我现在被卡住了。

该脚本会抓取 Amazon 页面以在给定的时间跨度内列出并乘以所有订单。使用“登录”表单登录后,我们前往“您的帐户”->“您的订单”,现在尝试捕获这个下拉框:
dropdown box

这是亚马逊的 HTML 代码:

<form id="order-dropdown-form" action="/gp/css/order-history" method="get">
<input type="hidden" name="opt" value="ab">
<label for="orderFilter">
Date:
</label>
<select name="orderFilter" id="orderFilter">
<option value="select-another" disabled="disabled">
-Select different orders to view-
</option>
<option value="last30" selected="selected">
Orders placed in the last 30 days
</option>
<option value="months-6">
Orders placed in the past 6 months
</option>
<option value="year-2012">
Orders placed in 2012
</option>
<option value="year-2011">
Orders placed in 2011
</option>
(...)
</select>
<span class="in-amzn-btn btn-prim-med" unselectable="on"><input type="submit" value="Go"><span></span></span>
</form>

ruby 代码如下所示:
select_form = orders_page.form_with(:id => 'order-dropdown-form')
select_form.field_with(:name => 'orderFilter').options.each do |option|

不幸的是,这不适用于 Mechanize 1.0,没有方法“id”。那么我还能如何获得那个下拉框呢?

最佳答案

目前尚不清楚您需要做什么。如果您需要设置该值,则为:

select_form['orderFilter'] = value

如果您需要遍历选项,则更像是:
orders_page.search('select#orderFilter option').each do |option|
select_form['orderFilter'] = option[:value]
end

请注意,这样做意味着该选项是一个 Nokogiri::XML::Node 而不是 Mechanize::Form::Option 或其他任何东西。尽管如此,我似乎更容易这样做。

关于html - Ruby 脚本从 Mechanize 2.1 过渡到 1.0 - 选择下拉框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9129044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com