我想构建一个模拟用户点击特定Url的命中引擎,
我在循环中使用curl_exec
调用相同的网址。
如何改善此脚本的效果?
这样做的正确方法是什么?
我现在所做的是:
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => true, // return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => $useragent, // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 1, // stop after 1 redirects
CURLOPT_URL => $url . $fields_string,
CURLOPT_SSL_VERIFYPEER => false,
);
//open connection
$ch = curl_init();
for ($i = 0; $i < $NumberOfHits; $i++)
{
curl_setopt_array($ch, $options);
//execute post
$result = curl_exec($ch);
if(curl_errno($ch))
{
$error = "Curl error: " . curl_error($ch) . "\n";
fwrite($fp, $error);
}
$returnCode = curl_getinfo($ch);
$my_arr[] = parse_url($returnCode['url'] , PHP_URL_QUERY);
...
}
我知道curl_multi_exec,但是这个问题是针对不同的网址构建的,在我的情况下使用它也是正确的吗?
答案 0 :(得分:1)
您需要多么出色的表现?你也可以使用普通的curL_exec和while
来做到这一点,我尝试了它,它能够在一秒钟内完成大约5次点击,所以每分钟就有300次点击。虽然它可能取决于你的isp。