我是搜索引擎新手,我发现googlenews非常有趣。
我想写一个简单的爬虫
如您所知,新闻网站每天都会生成链接(我想基本上解析它们的所有链接(不仅仅是今天打印的链接,还包括生成before...and的所有链接--所有这些链接都保存在新闻网站数据库中)。
我不知道我想爬的新闻网站使用的是哪个数据库,我也没有访问它的权限。
对于google搜索爬虫,也可以问同样的问题,即爬虫应该意识到一个新的域已经启动,这样它就可以爬行它,从而确保google数据库反映了万维网的最新状态。
那么,是否有任何开放的世界范围的数据库可以保存所有的域名,而google基本上是在爬行呢?
Apache,Nutch,Solr,ElasticSearch?
也许是http://phpcrawl.cuab.de/
我真的很好奇以上四个问题的答案。
请协助。
提前谢谢。
发布于 2014-06-06 18:32:39
你有一些关键的问题,我会回答,但首先,你应该了解什么是爬虫。
什么是爬虫?
爬虫的工作是通过阅读网页来扫描互联网,获取他所包含的所有链接,然后阅读这些页面。此操作的主要目的是自动查找新内容。一个好的爬虫者会开始爬行一些经常更新的大而熟悉的网站,这样他就可以更新和索引这些网站,并快速获得新的内容和新的网站(因为大型网站通常包含指向其他网站的链接)。
关于你的问题:
googlenews可以访问所有这些网站数据库吗?
no ,如果您可以访问数据库,就不需要爬虫了。
爬虫如何知道一个新的链接已经添加到该网站?
谷歌偶尔会抓取每个网站,并搜索网站内部的新链接。通常,新页面或文章将通过已经存储在Google数据库中的主页链接。
谷歌新闻爬虫如何知道什么时候一个新的网站已经推出?
简单的答案是:爬虫找到一个链接到新的网站,检查网站是否在系统中,如果不是,添加它。
他们是如何得到旧文章的链接的?
很简单,他们把这些链接保存在一个庞大的数据库中。谷歌几年前就开始在互联网上爬行了。如果谷歌今天再一次开始在互联网上爬行,旧的链接可能不会出现。
我如何获得网站发布这篇文章的时间?
这取决于你爬行的网站。如果每篇文章都有日期,则需要解析页面并提取此日期。这篇文章的顶部有一个日期,通过搜索date类:<span class="date">6 June 2014</span>,很容易找到HTML。如果日期未出现,您将无法知道他们何时发布它。
作为一名开发人员,你可以让谷歌的生活变得更容易,并要求谷歌通过Google网站管理员工具爬行你的新网站。
在爬行网页的同时,谷歌也会计算一个页面的链接数量,这将影响页面的排名。许多链接到你的网站将表明你有一个有价值的内容,你应该出现在更高的搜索结果。
编写一个简单的爬虫很容易。您可以使用php cURL或file_get_contents获取页面的内容,解析它,选择并保存您想要的数据,提取该页面中的所有链接,然后递归地爬行您找到的链接。
https://stackoverflow.com/questions/24081214
复制相似问题