不到40行代码教你如何利用php高效快速的爬取10w+网页数据

2020-05-25  本文已影响0人  张清柏
<?php
/**
 * Created by PhpStorm.
 * User: zhangguofu
 * Date: 20/5/17
 * Time: 上午12:31
 */
echo "process-start-time:" . date("Ymd H:i:s") . PHP_EOL;
$baseUrl = "http://www.baidu.com/";//自定义网页
$count = 1000;//为了方便演示,此处用1000意思一下
for ($i = 0; $i < $count; $i++) {
    creatProcess($i, $baseUrl);
}
function creatProcess($i, $url)
{
//    每次过来统计一下进程数量
    $cmd = "ps -ef |grep test1 |grep -v grep |wc -l";
    $pCount = system($cmd);//进程数量
    if ($pCount < 200) {
        //    创建子进程
        $process = new swoole_process(function (swoole_process $worker) use ($i, $url) {
            $content = curlData($url);//方法里面处理你的逻辑
        });
        $pid = $process->start();
        echo $url . '------第' . $i . '个子进程创建完毕'.PHP_EOL;
    } else {
        sleep(10);//可以根据实际情况定义
        creatProcess($i, $url);
    }
}

function curlData($url)
{
    sleep(20);//为了让子进程多存在一段时间,让大家看到效果
    $content = file_get_contents($url);
    file_put_contents("./sData/baidu.txt","tttttttttttttttt".$content,FILE_APPEND);
}

echo "process-end-time:" . date("Ymd H:i:s");


image image image image
上一篇 下一篇

猜你喜欢

热点阅读