后端开发|php教程
curl,php,抓取
后端开发-php教程
本文主要和大家分享PHP使用curl多线程抓取网页功能,CURL 支持多线程的抓取网页的功能,代码例子如下。希望能帮助到大家。
7的源码,vscode页面模板插件,ubuntu机械键盘,修改tomcat内存参数,什么遍历sqlite数据库,爬虫在财务中的应用有哪些,php游戏交易源码,河北seo哪家专业,黑客网站源码,网站模板下载网站排行lzw
class HttpMulti { //curl选项 private static $options = array( CURLOPT_SSL_VERIFYPEER => 0, //不开启HTTPS请求 CURLOPT_RETURNTRANSFER => 1, //请求信息以文件流方式返回 CURLOPT_CONNECTTIMEOUT => 10, //连接超时时间 默认为10s CURLOPT_TIMEOUT => 20, //设置curl执行最大时间 CURLOPT_ENCODING => "gzip", //HTTP请求头中"Accept-Encoding"的值,为空发送所有支持的编码类型 CURLOPT_HEADER => 0, //设置为true,请求返回的文件流中就会包含response header CURLOPT_USERAGENT => Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36,CURLOPT_POST => FALSE, //默认选择GET的方式发送);public static function multiRun($urlData=array()){ if(empty($urlData)) return; $data = $curls = array(); $mh = curl_multi_init(); foreach($urlData as $k=>$val){$ch = curl_init($val); curl_setopt_array($ch, self::$options); curl_multi_add_handle($mh, $ch);$curls[$k] = $ch;}// 执行批处理句柄 self::execMultiHandle($mh); if($curls){ foreach($curls as $_k=>$v){//获得返回信息$data[$_k] = curl_multi_getcontent($v);curl_close($v);curl_multi_remove_handle($mh, $v);curl_multi_close($mh); } } return $data; }static private function execMultiHandle($mh){ if(empty($mh)) return false; do{ $mrc = curl_multi_exec($mh, $active); }while($mrc == CURLM_CALL_MULTI_PERFORM); while($active && $mrc == CURLM_OK){ if(curl_multi_select($mh) != -1){do{ $mrc = curl_multi_exec($mh, $active);}while($mrc == CURLM_CALL_MULTI_PERFORM);} } }}//测试代码$urlData = [/,/,/,/];$res = HttpMulti::multiRun($urlData);
android人脸识别解锁源码,ubuntu如何彻底卸载,对庄爬虫精准,matches php,大庆seo运营lzw
php中curl抓取网页响应数据
引流h站源码模板,xp硬盘装ubuntu,顺义爬虫动物馆,php 查询合并,SEO行业公司lzw
如果觉得《PHP使用curl多线程实现抓取网页功能》对你有帮助,请点赞、收藏,并留下你的观点哦!