吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 911|回复: 8
收起左侧

[求助] php curl多线程怎么写?

[复制链接]
comcn 发表于 2022-12-4 14:31
本帖最后由 comcn 于 2022-12-4 14:45 编辑

目标网址:aHR0cHM6Ly9jai5semlhcGkuY29tL2FwaS5waHAvcHJvdmlkZS92b2QvP2FjPXZpZGVvbGlzdCZ3ZD0lRTUlQTQlQTclRTUlODYlQjMlRTYlODglOTg=


我的代码:
[PHP] 纯文本查看 复制代码
 $ch = curl_init();
        $url='目标网址';
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, array('Content-type: application/json'));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                // curl_setopt($ch, CURLOPT_HEADER, false)
        $output = curl_exec($ch);
        return json($output);


curl需要1.3秒才可以加载出来,使用多线程可以快点吗?
加上多线程如何写呢
感谢大佬们 !!
微信截图_20221204142905.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

atoms 发表于 2022-12-4 15:12
[PHP] 纯文本查看 复制代码
<?php 
function https($url,$referer="",$post=array()){
    $c=curl_init();
    curl_setopt($c,CURLOPT_URL,$url);
    if($post)curl_setopt($c,CURLOPT_POSTFIELDS,http_build_query($post));
    if($referer)curl_setopt($c,CURLOPT_REFERER,$referer);  
    curl_setopt($c,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36');
    curl_setopt($c,CURLOPT_HEADER,0);
    curl_setopt($c,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($c,CURLOPT_SSL_VERIFYPEER,false);
    curl_setopt($c,CURLOPT_SSL_VERIFYHOST,false);
    $html=curl_exec($c); 
    curl_close($c);
    return $html;
}
$start=microtime(true);
$html=https(base64_decode("aHR0cHM6Ly9jai5semlhcGkuY29tL2FwaS5waHAvcHJvdmlkZS92b2QvP2FjPXZpZGVvbGlzdCZ3ZD0lRTUlQTQlQTclRTUlODYlQjMlRTYlODglOTg="));
$end=microtime(false);
echo "length:".strlen($html)."<br>";
echo "time:".(microtime(true)-$start)."s";


length:34078
time:0.62203598022461s

我试了试我的 用时0.62秒左右 代码差不多 这个是不是跟网速有关呀
runfog 发表于 2022-12-4 15:56
dujiu3611 发表于 2022-12-4 18:53
学习一下,看到有人使用curl_multi_add_handl循环调用来实现多线程,没试过
芊雨千寻 发表于 2022-12-4 21:08
用四楼的方法  curl_multi_add_handl
小弟到此一游 发表于 2022-12-4 21:16
用 curl 写爬虫 多少不理智啊 哈哈哈  PHP主要服务对象就不是来写爬虫的
这个是 多线程的例子 https://blog.csdn.net/liqihang_dev/article/details/83823407
要多少线程在里面new 多少个 在线程里面for 就可以达到多线程爬虫了
小弟到此一游 发表于 2022-12-4 21:22
小弟到此一游 发表于 2022-12-4 21:16
用 curl 写爬虫 多少不理智啊 哈哈哈  PHP主要服务对象就不是来写爬虫的
这个是 多线程的例子 https://bl ...

爬好了 内容发我一份哈~
 楼主| comcn 发表于 2022-12-5 15:25
小弟到此一游 发表于 2022-12-4 21:16
用 curl 写爬虫 多少不理智啊 哈哈哈  PHP主要服务对象就不是来写爬虫的
这个是 多线程的例子 https://bl ...

例子跟curl不大,不过我已经放弃多线程了
saobee 发表于 2022-12-6 09:59
curl多线程是同时请求多个不同网址,没办法处理单一网址
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 04:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表