原文网址:https://www.youyong.top/article/11592fae023a5
使用PHP脚本实现每秒100次的百度首页抓取功能,极大提高网页数据的采集效率,谁说我大PHP采集数据慢到死来着,不服来辩
原文网址:https://www.youyong.top/article/11592fae023a5
使用PHP脚本实现每秒100次的百度首页抓取功能,极大提高网页数据的采集效率,谁说我大PHP采集数据慢到死来着,不服来辩
原文网址:https://www.youyong.top/article/11592fae023a5
1.背景:
总所周知,NTS版本的PHP是不支持多线程的,毕竟NTS(非线程安全)嘛,有人会说那为何不用多进程呢?嗯,多进程是可以,但是你要考虑到进程通信这个老大难啊,我知道你可能接下来扩展出两个问题,第一个是进程通信的必要性,第二个是有哪些方式让进程之间进行高效通信。能这么想就对了,但是本文解决的问题是突破PHP单进程单线程利用网络进行数据采集的瓶颈而创作的,因此这俩问题就交给同学们自己去搜索答案了。
2.解决步骤:
2.1 打开:https://packagist.org
2.2 搜索curlmulti,找到一个满足自己需求的pkg并查看文档描述:https://packagist.org/packages/phpdr.net/php-curlmulti
2.3 写代码:
composer require phpdr.net/php-curlmulti
//消耗时间:17.40699505806
去掉file_put_contents并把采集到的内容放到全局数组里面去,发现耗时11秒,
目的基本达到,同学们可以根据自己的网络情况再进行自己的优化。
请保持网络环境通畅
作者声明:本篇文章系本人原创,欢迎分享,但未经许可,谢绝转载。
共 0 条留言
Linux php-fpm报错:allow_call_time_pass_reference
6款程序员必备的开源中文汉字拼音转换及处理工具 (PHP Java .net)
PHP Fatal error: Allowed memory size of bytes exhausted
改了php.ini中的open_basedir仍报错open_basedir restriction in effect
php call_user_fun Call-time pass-by-reference has been remov
iPhone X 跌破发行价,苏宁200亿入股恒大 | 财经日日评
资深黄牛现身说法:iPhone X价格秒变不停,就像炒股一样
手机扫一扫
分享文章