分享

PHP使用file_get_contents()函数实现采集网页

 何湘辉博客 2016-12-07

 采集网页关键在于两个地方:

  1. 如何获取目标网页HTML源代码。

  2. 如何使用正则匹配出需要的内容。

我们使用《终于到了。》这篇文章作为目标网页,获取网页源代码比较简单的方法就是使用 file_get_contents() 函数,使用方法:

$content = file_get_contents('http://www.diary/17.html');

变量 $content 就是用来储存我们使用 file_get_contents() 获取的网页源代码。


接下来就是如何使用正则匹配出正文内容,我们先用浏览器打开这个页面,然后右键查看源代码,找到正文处代码。

3.png


找到包裹着正文的HTML标签,就可以使用 preg_match_all() 函数匹配出正文。

preg_match_all('/

(.*)

/', $content, $result);

使用 var_dump() 函数打印 $result 变量。

1.png

从图中可以看出,打印出了一个二维数组,虽然匹配出了正文,但是里面还有一些HTML标签,接下来要做的就是使用 str_replace() 函数去掉这些标签。

$arr = array('

', '

', '
');$result = str_replace($arr, '', $result[0][0]);

最后输出变量 $result 就可以了。

运行结果:

2.png


完整代码:

(.*)

/', $content, $result); //使用正则匹配出正文$arr = array('

', '

', '
'); //需要去除的HTML标签数组$result = str_replace($arr, '', $result[0][0]);  //去除HTML标签echo $result; //输出正文?>


最后总结,使用PHP采集网页需要注意的地方是,file_get_contents() 获取网页源代码的效率比较低,推荐使用 curl。还有就是正则表达式,正则表达式需要根据网页源代码来编写,并不是一成不变的。关于 curl 和正则表达式的知识可以使用百度了解!

原文链接: http://www./php/19.html,尊重共享,欢迎转载!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多