思路: 获取超链接标签, 然后使用批量打开每个超链接, 从而不需要手动一个个打开链接 完善: 建议用脚本实现, 然后写一个定时脚本[服务器上],每天定时执行. 环境: 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]. |
... |
... |