现在的位置: 网页制作教程网站制作经验 >正文
php网上学习

PHP如何采集指定的内容

发表于2017/1/4 网站制作经验 0条评论 ⁄ 热度 2,259℃

利用PHP程序如何采集指定区域的内容,我们今天以一个简单的案例来说明。

本案例是采集新浪sina网首页的新闻,利用php程序去抓取相关标题。下图是抓取的效果图:

采集效果图

我实现采集的过程是这样的:

需要用到php的file_get_contents,preg_match等函数。

php 代码:
  1. <!-- lang: php -->
  2. $file=file_get_contents('http://www.sina.com.cn/');
  3. preg_match('/<head>([\s\S]*)<\/head>/',$file,$head);
  4. print_r($head[0]);
  5. echo '<body><div class="rightbox"><div class="right">
  6. <div class="colpadding"><div id="news" class="md">';
  7. preg_match('/<div id=\"news\" class=\"md\">([\s\S]*)
  8. <span id=\"news_con_2\" style=\"display:none;\"><\/span>/',$file,$body);
  9. print_r($body[1]);
  10. echo '<span id="news_con_2" style="display:none;"></span>';
  11. echo '</div></div></div></div></body></html>';

看到没有,就是简单的几步,就实现了PHP采集效果。如果对样式有不满意的地方,可以再自行修改。

总结:

1.我们使用preg_match正则匹配要抓取模块的div,然后再输出就行了。

2.这个例子比较简单,当遇到稍微复杂一点的需求的时候,告诉大家一个调式的好办法。

比如说上面的例子当中你想要看看head部分究竟输出的是什么,可以使用htmlspecialchars函数,来防止转义:htmlspecialchars($head[0]), 这样输出的就是正则匹配的head部分的代码,方便你的查看和调式。

  • 暂无评论