-1

我正在尝试自动与具有未嵌入在表单中的“按您键入的搜索”搜索栏的网站进行交互。这是html的一部分:

<div id="search-box">
        <div class="form">
            <div class="input-outer">
                <div class="input-inner">
                    <input class="xblur" id="q" name="q" title="type to begin search" type="text" value="" />
                </div>
            </div>
            <div id="cancel" class="activated" title="Clear search">
            </div>
        </div>

我可以处理表单,到目前为止脚本编写工作很好,但现在我似乎遇到了障碍......在这种情况下我如何进行搜索,最好使用WWW::Mechanize(但不同的模块左右也可以)?

非常感谢您的时间!

4

2 回答 2

1

那么你需要在页面中执行JS吗?Mozilla::Mechanize , Win32::IE::Mechanize

于 2012-06-06T23:25:04.543 回答
1

就故障排除而言,我建议将 Firebug 插件安装到 Firefox 中。转到搜索表单页面并启用 Firebug。确保控制台选项卡处于活动状态,以便您可以在键入时看到正在发生的事情。通过在与表单交互时观察 GET 或 POST 请求,您应该能够更好地了解 AJAX 正在发生的事情。

Firebug 还有一个箭头图标,您可以单击它然后选择页面元素以查看源代码。这对于获取页面加载后创建的表单元素的名称非常方便。

您还可以单击控制台中出现的请求以查看返回的请求和响应。这些信息可能非常有价值。

获得此信息后,您可以决定如何处理通过搜索表单。如果您可以看到哪些参数被发送到搜索表单,您最好发布到搜索目标,而不是填写表单并通过 mech 单击它。

$mech->post( $url, { foo => 'bar', name => 'value' } );                                                                                                                                         
于 2012-06-07T02:01:50.453 回答