我需要在跟踪/报告应用程序上加载 1000 个 url(在通过 HTML 表单进行身份验证后)并触发“重新提交”javascript 函数。不幸的是,没有一次性处理所有的批量操作,所以我只剩下自动化了。我有哪些选择?
http://domain.com/0001.php
http://domain.com/0002.php
http://domain.com/0003.php
...
http://domain.com/1000.php
上述每个页面都有一个由 href 触发的 resubmit() javascript 函数。我怎样才能自动触发这些?
示例:
<form action="/resubmit" method="POST">
<input type="hidden" name="security_token" value="SUPER-LONG-HASH">
<input type="hidden" name="url" value="http://mysite.com/0001.html">
<input type="hidden" name="redirect" value="long-string">
<script type="text/javascript">
window["resubmit"] = function () {
document["resubmit"].submit();
return false;
}
</script>
<a href="javascript:resubmit()" class="resubmit-class">resubmit</a>
</form>
我在使用 Mac。 Unix、Perl、Bash、PHP、Automator、FireFox iMarcos 都可用。
最佳答案
你应该看看 PhantomJS ,“带有 JavaScript API 的 headless WebKit”。它允许您从命令行运行 WebKit 浏览器实例并执行 Javascript。
使用 Pjscrape 或许可以节省一些时间,一个建立在 PhantomJS 之上的工具,可以抓取多个页面或获取一长串 URL(免责声明:这是我的项目)。我没有尝试使用 1,000 多个 URL,但我认为您可以使用以下 6 行来执行您描述的操作:
pjs.addSuite({
urls: [...], // your very long list here
scraper: function() {
window.resubmit();
}
});
关于javascript - 如何使浏览器自动访问 1000 个页面并在每个页面上触发一个简单的 javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7923611/