我正在尝试抓取一个网页进行工作,其中有数百个带有复选框的表格行,并提交表单我需要单击一个调用javascript函数的按钮。 html中的按钮如下所示:
<a onclick="JavaScript: return verifyChecked('Resend the selected request for various approvals?');"
id="_ctl0_cphMain_lbtnReapprove"
title="Click a single request to send to relevant managers for reapproval."
class="lnkDBD" href="javascript:__doPostBack('_ctl0$cphMain$lbtnReapprove','')"
style="border-color:#0077D4;border-width:1px;border-style:Solid;text-decoration: overline;"> Resend </a>
我知道像美女汤这样的图书馆你可以通过在网址中添加帖子数据来提交表格,但是我怎样才能勾选一个复选框并“点击”这个javascript按钮?该网站是各种各样的帮助台,对于这个特定的按钮,我们只能检查一个请求,当需要重新提交数百个请求时,这个请求会花费太长时间。
当我选中复选框时,会弹出一条消息,确认我要这样做,我不知道这是否会影响以编程方式提交。
编辑:我忘了包含doPostBack方法。
<script type="text/javascript">
<!--
var theForm = document.forms['aspnetForm'];
if (!theForm) {
theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script>
答案 0 :(得分:2)
你可能最好使用像selenium这样的浏览器自动化库。
答案 1 :(得分:1)
获取Firefox和 Firebug ,打开 Firebug 加载页面,然后在控制台选项卡中查看其实际发送到服务器的内容。
然后使用您喜欢的工具重复发送它的内容。
答案 2 :(得分:1)
尝试Imacros。对于简单的浏览器自动化,它非常出色。您可以记录您的会话,并根据该代码生成代码。如果有更多逻辑,非复杂文档中的标准编程可以让您快速进行。您也可以在语言/脚本之外进行校准。例如,我用过一些项目:
1)收集业务线索:一个站点有一个所有其他零售店的列表,但不会给他们所有接近用户输入的邮政编码。在电子表格中放了大量的邮政编码,当运行时,会从csv中查看每个邮件并在csv文件中搜索商店信息。每隔5分钟就会在PC上打开VPN程序并更改ip。拿。 20分钟制作。
我准备编程然后确定,但我发现这是最好的方法,因为如果站点更改它更容易调试,它们的“代码”非常简单,您可以轻松地调用其他脚本和文件。 Firefox添加最稳定,最自由。