如何从网站数据库中抓取链接?

时间:2014-06-06 11:52:16

标签: php mysql web-crawler

我是搜索引擎新手,我觉得googlenews非常有趣。

我想写一个简单的爬虫

  1. 仅解析三个不同新闻网站的文章链接。
  2. 使用在网站上公布链接的时间戳(而不是爬网程序检测到链接的时间)保存数据库(mysql)中的链接。
  3. 如您所知,新闻网站每天都会生成链接(我想基本上解析所有链接(不仅是今天打印的链接,还包括之前生成的所有链接......以及所有这些链接)链接保存在新闻网站数据库中。)

    我不知道我想要抓取的新闻网站使用哪个数据库,而且我也没有访问权限。

    1. 那么googlenews如何解析所有新闻网站的所有文章链接,包括很久以前生成的链接? googlenews是否可以访问所有这些网站数据库?

    2. 抓取工具如何知道网站上添加了新链接?例如,如果一个新闻网站发布了一篇新文章,并且我希望我的抓取工具立即解析链接,那么抓取工具怎么知道呢(googlenews也能够做到......那么怎么......?)即爬虫马上知道新文章的链接?或谷歌只是固定间隔(每隔一小时等等)抓取网站?

    3. Google新闻抓取工具如何知道新网站何时推出? 抓取工具是否会自动查找新网站,或者Google工程师基本上会抓住一个固定的新闻网站列表进行抓取?

    4. 可以询问有关Google搜索抓取工具的相同问题,即抓取工具应该知道已经启动了一个新域,因此可以对其进行抓取,从而确保Google数据库反映万维网最新状态。

      那么是否有任何开放的全球数据库可以保持所有域名的启动,谷歌基本上会抓取它?

      1. 实施我的新闻网站抓取工具的最佳工具是什么?
      2. Apache Lucene,Nutch,Solr,ElasticSearch?

        也许http://phpcrawl.cuab.de/

        我真的很好奇上述四个问题的答案。

        请协助。

        提前致谢。

1 个答案:

答案 0 :(得分:2)

您有一些关键问题我会回答,但首先您应该了解什么是爬虫。

什么是抓取工具?

抓取工具的工作是通过阅读页面扫描互联网,获取他包含的所有链接,然后阅读这些页面。此操作的主要目的是自动查找新内容。一个好的爬虫会开始抓取几个经常更新的大而熟悉的网站,这样他就可以更新和索引这些网站,并快速获取新内容和新网站(因为大型网站通常包含指向其他网站的链接)。

关于你的问题:

  

googlenews是否可以访问所有这些网站数据库?

,如果您有权访问数据库,则无需使用抓取工具。

  

抓取工具如何知道网站上添加了新链接?

谷歌偶尔会抓取每个网站,并搜索网站内的新链接。通常,新页面或文章将通过已存储在Google数据库中的主页面进行链接。

  

Google新闻抓取工具如何知道新网站何时出现   推出?

简单的答案是:抓取工具找到指向新网站的链接,检查网站是否在系统中,如果没有,则添加它。

  

他们如何获得旧文章的链接?

很简单,他们将这些链接保存在一个庞大的数据库中。谷歌几年前开始爬网。如果Google今天重新开始抓取互联网,那么旧链接可能无法显示出来。

  

如何获得网站发布文章的时间?

这取决于您要抓取的网站。如果每篇文章都有一个日期,则需要解析页面并提取此日期。 This article在顶部有一个日期,通过搜索日期类很容易找到HTML dom:<span class="date">6 June 2014</span>。 如果日期没有出现,您就无法知道他们何时发布日期。

作为开发者,您可以让Google的生活更轻松,并要求Google通过Google Webmaster Tools抓取您的新网站。

在抓取网页时,Google还会计算指向某个网页的链接数量,这会影响网页的排名。许多指向您网站的链接都表明您拥有有价值的内容,并且您应该在搜索结果中显得更高。

编写简单的爬虫很容易。您使用php cURLfile_get_contents获取页面内容,解析它,选择并保存所需数据,提取此页面中的所有链接,然后递归抓取您找到的链接。< / p>