PHP多进程编程:多进程抓取网页的演示

Posted 云旗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP多进程编程:多进程抓取网页的演示相关的知识,希望对你有一定的参考价值。

我们知道,从父进程到子经常的数据传递相对比较容易一些,但是从子进程传递到父进程就比较的困难。

有很多办法实现进程交互,在php中比较方便的是 管道通信。当然,还可以通过 socket_pair 进行通信。

首先是服务器为了应对每一个请求要做的事情(发送一个url 序列,url序列用t 分割。而结束标记是 n)

代码如下:(为每一个url fork 一个线程,然后打开管道 ,读取到的标题写入到管道里面去,主线程一直的在读取管道数据,直到所有的数据读取完毕,最后删除管道)

在下载到 title 标签后,就停止读取内容,以节省时间。代码如下:

这里,我只是检测了 三种最常见的编码。其他的代码都很简单,这些代码都是测试用的,如果你要做这样一个服务器,一定要进行优化处理。特别是,要防止一次打开太多的进程,你要做更多的处理。

很多时候,我们抱怨php 不支持多进程,实际上,php是支持多进程的。当然,没有那么多的进程通信的选项,而多进程的核心就在于进程的通信与同步。在web开发中,这样的多线程基本上是不会使用的,因为有很严重的性能问题。要实现比较简单的多进程,高负载,必须借助其扩展。

以上是关于PHP多进程编程:多进程抓取网页的演示的主要内容,如果未能解决你的问题,请参考以下文章

爬虫——使用多进程爬取视频数据

如何用php 编写网络爬虫?

多线程编程

多线程编程

数据挖掘_多进程抓取

python中的多线程和多进程编程