我正在测试一个通过激活代理来限制网站的软件。似乎有一个错误,代理只是停止工作,但只有在大约一两个小时的网上冲浪,或点击数百甚至数千个链接。
是否有现成的解决方案可以做到这一点?如果我能以这种方式解决问题,我也有兴趣编写解决方案。
我听说过firefox的greasemonkey插件,但我不熟悉javascript。有没有办法让javascript可以随机收集页面上的链接,然后随机打开其中一个链接?
答案 0 :(得分:2)
听起来代理可能会有超过一小时(绝对)的会话超时或大约一小时的“无活动”。
撇开这是否是一个好的测试方法,这里是一个完整的Greasemonkey脚本点击随机链接:
// ==UserScript==
// @name _YOUR_SCRIPT_NAME
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// ==/UserScript==
var timeDelaySeconds = 2;
setInterval (clickRandomLink, timeDelaySeconds * 1000);
function clickRandomLink () {
var links = document.querySelectorAll ("a");
/*--- Or fine-tune the links to certain areas or types. EG:
var links = document.querySelectorAll ("#content a");
var links = document.querySelectorAll ("a.comments");
etc.
*/
if (links.length) {
var linkToClick = links[getRandomInt (0, links.length - 1) ];
var clickEvent = document.createEvent ('MouseEvents');
clickEvent.initEvent ('click', true, true);
linkToClick.dispatchEvent (clickEvent);
}
}
function getRandomInt (min, max) {
return Math.floor (Math.random () * (max - min + 1) ) + min;
}
它使用时间延迟来允许链接到AJAX-in。它使用querySelectorAll()
来允许微调使用哪些链接,并发送实际的点击事件,因为这是触发大多数链接的最有效方式。