码迷,mamicode.com
首页 > Web开发 > 详细

【转】使用PHP创建基本的爬虫程序

时间:2015-09-06 18:00:02      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

Web Crawler, 也时也称scrapers,即网络爬虫,用于自动搜索internet并从中提取 想要的内容。互联网的发展离不开它们。爬虫是搜索引擎的核心,通过智能算法发现符合 你输入的关键字的网页。

Google网络爬虫会进入你的域名,然后扫描你网站的所有网页,从中析取网页标题,描述, 关键字和链接 - 然后把这些的评价返回给Google HQ,把内容存放至海量的数据库中、

今天,我很高兴告诉你怎么做自己的爬虫 -- 它并不对整个互联网进行搜索,只是对指定的 一个网址获取所有链接和信息[译:我稍微根据应用修改了例子,改成获取电视节目表]。

一般地,你应该确保你在爬虫前已经获得授权,因为那真的是一个灰色的地带。就如我说过 互联网离不开这些爬虫,对于理解它们是如何工作,如何创建的是一件很重要的事。

为了让实现更简单,我们使用最流行的网络编程语言--PHP.不用怕你不懂PHP--我将告诉你 演示每一步操作,并解释是用来做什么的。我假定你已经了解HTML,并知道如何在HTML文档中 加链接和图片。

你需要有一个服务器运行PHP脚本。建议你使用AppServ

入门

我们使用一个辅助库Simple HTML DOM。这个库用于便捷地遍历HTML文档。

首先,我们测试环境是否正常。创建一个.php文件。并把下面代码拷贝至服务器www文件夹。

<?php
    include_once(‘simple_html_dom.php‘);
    phpinfo();
?>

通过浏览器浏览创建的文件。如果一切正确,那么你会看到如下图输出的服务器信息:

技术分享

第1行代码<?php告诉服务器使用PHP语言。这对服务器如何解析是十分重要的。第二行代码是包含 我们辅助库Simple HTML DOM。最后phpinfo()打印出PHP当前的配置信息,用于查看环境是否正常。要注意所有PHP语句都要以;结尾。初学者最常见的一个错误就是忘记写分号,结果输出空白页。

接下来,我们把phpinfo替换成我们的爬虫代码。我们的任务是从一个电视节目预告的网站获取节目表。代码如下:

<?

    include_once(‘simple_html_dom.php‘);

    $domain = "http://epg.tvsou.com";
    $target_url = "http://epg.tvsou.com/programys/TV_1/Channel_1/W4.htm";
    $html = new simple_html_dom();
    $html->load_file($target_url);

    // 查找channel
    $channels = array();
    $channels[‘CCTV-1‘] = $target_url;
    foreach($html->find(‘div[class=listmenu2] a‘) as $post)
    {
        $channels[$post->innertext] = $domain.$post->href;
    }
?>

首先,我们通过$target_url指示抓取的地址,通过实例化simple_html_dom对象,以load_file加载指定地址内容。最后,调用find提取想要的内容。find的语法与css选择子很类似。上面代码 获取节目的频道连接,由于频道链接是class=listmenu2的div下的链接,所以我们把它存放在数组中,并通过链接的文本(即频道名作为索引)

通过获取频道链接后,我们可以进一步深入获取频道的节目表,我相信你已经能够把后面的代码完成了。enjoy!

【转】使用PHP创建基本的爬虫程序

标签:

原文地址:http://www.cnblogs.com/qf19910623/p/4786645.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!