加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP爬虫:百万级别知乎用户数据爬取与分析

发布时间:2016-10-17 09:27:05 所属栏目:PHP教程 来源:站长网
导读:副标题#e# 这次抓取了110万的用户数据,数据分析结果如下: 498)this.width=498;' onmousewheel = 'javascript:return big(this)' width="503" height="233" alt="" src="http://www.aspzz.cn/uploads/allimg/160130/1G554Hc_0.jpg" /> 开发前的准备 安装Li

在PHP中使用redis示例:

  1. <php 
  2.     $redis = new Redis(); 
  3.     $redis->connect('127.0.0.1', '6379'); 
  4.     $redis->set('tmp', 'value'); 
  5.     if ($redis->exists('tmp')) 
  6.     { 
  7.         echo $redis->get('tmp') . "n"; 
  8.     } 

使用PHP的pcntl扩展实现多进程

改用了curl_multi函数实现多线程抓取用户信息之后,程序运行了一个晚上,最终得到的数据有10W。还不能达到自己的理想目标,于是便继续优化,后来发现php里面有一个pcntl扩展可以实现多进程编程。下面是多编程编程的示例:

  1. //PHP多进程demo 
  2. //fork10个进程 
  3. for ($i = 0; $i < 10; $i++) { 
  4.     $pid = pcntl_fork(); 
  5.     if ($pid == -1) { 
  6.         echo "Could not fork!n"; 
  7.         exit(1); 
  8.     } 
  9.     if (!$pid) { 
  10.         echo "child process $i runningn"; 
  11.         //子进程执行完毕之后就退出,以免继续fork出新的子进程 
  12.         exit($i); 
  13.     } 
  14.  
  15. //等待子进程执行完毕,避免出现僵尸进程 
  16. while (pcntl_waitpid(0, $status) != -1) { 
  17.     $status = pcntl_wexitstatus($status); 
  18.     echo "Child $status completedn"; 

在Linux下查看系统的cpu信息

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读