如何在Java中使用Sitemap进行Web爬网?

时间:2011-11-15 09:47:26

标签: java web-crawler

我需要开发一个抓取工具,它会抓取网站上的所有产品链接和价格。我听说在robots.txt文件中提到它更有效和快速使用Sitemap,但我无法弄清楚如何使用站点地图进行抓取。请有人帮我如何使用Sitemap抓取。

感谢。

3 个答案:

答案 0 :(得分:2)

正如您所说,您想要创建一个抓取工具,并且您想要使用robots.txt上提供的站点地图,那么您需要执行以下操作。

1)任何网站都会在第一级网站上安装robots.txt。因此,对于您想要抓取的任何网站,您都可以进行解析 http://any-websitesite-name.com/robots.txt Sitemap: 您可以用Java编写解析器。例如:http://www.javapractices.com/topic/TopicAction.do?Id=87

2)完成后,您将获得站点地图网址(可以是.xml或.xml.gz)

3)编写一个Java digester来解析xml。以下是一个示例:http://devguru.com/features/tutorials/jakarta/jakarta.asp 请务必阅读任何网址的<loc>..</loc>标记

注意:很多网站都没有robots.txt上的站点地图网址..如果在robots.txt上没有这个网址,最好点击http://website-name/sitemap.xml

希望有所帮助。

答案 1 :(得分:0)

要使用站点地图,您必须先拥有站点地图,因此您需要先生成站点地图。然后,Googlebot和其他人将使用您生成的站点地图为搜索引擎编制索引。有几个免费的站点地图生成器,例如http://www.xml-sitemaps.com,但它们有局限性。

AFAIK它并不需要对Java做很多事情。我的意思是,你可以用Java轻松地创建一个爬虫,但我不认为它是值得的。如果网站不是太大,免费版本可以很好地完成工作。

答案 2 :(得分:0)

robots.txt提供排除列表,用于警告cralwer尊重排除以避免提及目录。并非所有网站都提供排除。网站地图有助于更好地了解产品的分类和因此很有用。