【问题标题】:How to crawl links from a database of a website? [closed]如何从网站的数据库中抓取链接? [关闭]
【发布时间】:2014-06-06 11:52:16
【问题描述】:

我是搜索引擎的新手,我发现 googlenews 非常有趣。

我想写一个简单的爬虫

  1. 仅解析三个不同新闻网站的文章链接。
  2. 将链接保存在数据库 (mysql) 中,并附上链接在网站上公布的时间戳(而不是爬虫检测到链接的时间)。

如你所知,新闻网站每天都会生成链接(而且我基本上想解析他们的所有链接(不仅仅是今天打印的那些,还有之前生成的所有链接......以及所有这些链接保存在新闻网站数据库中)。

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

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

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

  3. Google 新闻爬虫如何知道新网站何时启动? 爬虫是自动寻找新网站,还是谷歌工程师基本上持有固定的新闻网站列表来抓取?

关于谷歌搜索爬虫可以问同样的问题,即爬虫应该知道一个新的域已经启动,以便它可以抓取它,因此确保谷歌数据库反映万维网的最新状态。

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

  1. 实施新闻网站爬虫的最佳工具是什么?

Apache Lucene、Nutch、Solr、ElasticSearch?

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

我对以上四个问题的答案非常好奇。

请帮忙。

提前致谢。

【问题讨论】:

  • 大部分谷歌不允许你抓取它。他们有很多“反爬代码”技术。

标签: php mysql web-crawler


【解决方案1】:

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

什么是爬虫?

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

关于您的问题:

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

,如果您可以访问数据库,则无需爬虫。

爬虫如何知道新链接已添加到网站?

Google 会不时抓取每个网站并在该网站内搜索新链接。通常一个新页面或一篇文章将通过已经存储在 Google 数据库中的主页链接。

谷歌新闻爬虫如何知道一个新网站何时出现 推出了吗?

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

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

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

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

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

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

在抓取网页的同时,谷歌还会统计一个页面有多少链接,这会影响页面的排名。许多指向您网站的链接都表明您拥有有价值的内容,并且您应该在搜索结果中出现更高的位置。

编写一个简单的爬虫很容易。你用php cURLfile_get_contents获取页面的内容,解析它,选择并保存你想要的数据,提取这个页面中的所有链接,然后递归地爬取你找到的链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    • 2022-01-23
    • 2012-02-28
    • 2020-06-30
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多