• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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!


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
超简易简易PHP爬虫-PHP-张工发布时间:2022-07-10
下一篇:
php爬虫学习笔记1PHPSimpleHTMLDOMParser发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap