思路: 獲取超鏈接標籤, 然後使用批量打開每個超鏈接, 從而不需要手動一個個打開鏈接
完善: 建議用腳本實現, 然後寫一個定時腳本[服務器上],每天定時執行.
環境:
Chrome瀏覽器/其他瀏覽器也可以
PHP 7.3
nginx 1.15/1.16
方式一:
2.1 使用 https://www.lmcjl.com/ 在線工具,抓取網頁超鏈接[需要清洗數據,即不需要的數據去除掉即可]
2.2 使用在線工具批量打開超鏈接
2.2.1 輸入 http://www.ab173.com/zhanzhang/openurls.php 回車
2.2.2 注意
2.2.3 點擊'批量打開',結果如下:
由上可知, 已經成功.
|
備註:
根絕個人電腦配置以及瀏覽器種類而定同時打開的超鏈接數.
這裏:[作爲參考]
同時開啓200個tab, 是okay的.
cpu會瞬間升高, 但是稍後會降下來, 內存也會升高, 不會降下來.
//另外我這裏僅僅是想執行請求, 並不是要得到響應結果,所以頁面發出請求就可以關閉了.
方式二:使用爬蟲獲取超鏈接,後用循環執行打開超鏈接 //均使用腳本語言來處理, 即完全自己寫代碼來處理
php/python均可.
PHP實現
<?php
//1.數據文件[這裏不是大文件]
$dataFile = dirname(__FILE__) . '/urls.txt';
//2.讀取文件內容
$dataStr = file_get_contents($dataFile);
//3.清洗數據
$dataStr = preg_replace('/([\d]+-[\d]+\s)|(\r\n)/', ' ', $dataStr);
$dataArr = explode(' ', $dataStr);
//3.1 隨機選取部分數據, 也可以做測試
shuffle($dataArr); //打亂
$dataArr = array_slice($dataArr, 0, 147);
//4.統計時間
$timeSum = 0;
$num = 0;
$dataTime = date('Y-m-d H:i:s', time());
//5.curl請求[循環,也可以同時發請求
$ch = curl_init();
foreach($dataArr as $url){
if(!$url){
continue;
}
curl_setopt($ch, CURLOPT_URL, trim($url));
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE); // remove body[即不輸出body,Will be fasters]
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_exec($ch);
if(!curl_errno($ch)){
$info = curl_getinfo($ch);
$timeSum += $info['total_time'];
$num++;
//echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url'] . "\n\r";
} else {
echo 'Curl error: ' . curl_error($ch) . " with $url \n\r";
}
}
// $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// echo $httpCode;
echo $dataTime . ' Total took ' . $timeSum . ' seconds to send requests of ' . $num . ' urls' . "\n\r";
curl_close($ch);
郵件通知
定時腳本 //用shell/Perl編寫
shell腳本
https://mp.csdn.net/postedit/103959494 //Linux Crontab 定時任務
request_urls.sh
#!/bin/sh
cd ~/ningxiaofa/request_urls
php -q ./request_urls.php >> ./request_urls.txt
fileSize=`ls -l ./request_urls.txt | awk '{print $5}'`
if [ ${fileSize} -gt 51200 ]
then
rm -rf ./request_urls.txt
touch ./request_urls.txts
fi
|
定時任務: //每31分鐘執行一次
*/31 * * * * ~/crontab/request_urls.sh >> ~/ningxiaofa/request_urls.txt
修改後[將重定向輸出寫到shell腳本中]:
*/31 * * * * ~/crontab/request_urls.sh
|
最終結果:
定時腳本結果:
正常執行.
|
備註
這裏因爲會將echo 輸出的內容重定向輸出到request_urls.txt文本中, 可能時間長了之後, 文件較大,
建議在shell腳本中, 添加代碼判斷, 如果文件大小超過xxMB, 便刪除該文件.然後重建文該文件[應不用TBD].
|
...
|
...
|