如何抓取网页?

时间:2012-09-29 21:15:50

标签: web-crawler

我是网络抓取的初学者。我正在尝试抓取一个页面,例如,此页面: http://shopping.yahoo.com/search;_ylt=AkzLiLhD9_ulIJy.SYsw9T0bFt0A?p=video&did=0

我需要提取搜索结果,例如:Amazon.com或antonline.com。任何人都可以帮助我命名一些可以帮助我实现这一目标的技巧,工具吗?

编辑:我必须使用Java。

3 个答案:

答案 0 :(得分:2)

基本上,我们的想法是在浏览器devtools(Chrome或Firebug)中检查页面。尝试找到特殊的id或类。在您的网页上,这是<ul class='hproducts'>,其中包含<li class='hproduct'>使用该列表的列表!

然后你打个电话并得到回复并解析它。 (Google for DOM,SAX,XPath ...)这在语言和库之间是非常不同的。例如在Java上我们有JSoup库可以获取html(在这种情况下它与xml略有不同,呵呵)并以方便的方式解析它。

或者更好的谷歌API;)

答案 1 :(得分:2)

从URL读入文件。这将是所有标记。

应用正则表达式,使用页面中的模式提取数据。

检查标记并梳理数据中的模式,然后编写正则表达式以提取数据。我在这里假设您需要每个项目的标题和价格。因此,举例来说,我在您的示例文件中看到所有标题都包含在<li class ='hproduct'>中,并且所有价格都在<p class='price'>内。编写一个正则表达式,按顺序查找这些div的内容。

答案 2 :(得分:1)

Selenium WebDriver 可以做到:

http://seleniumhq.org/projects/webdriver/

我曾在一年前用它来提取红宝石,但它仍可用于Java。

还要看 Watir :( http://watir.com)

文章中的一个示例:(使用Ruby)

http://www.layeredthoughts.com/automation/how-to-write-your-first-ruby-web-bot-in-watir-scraping-weather-com

您还可以查找 HTMLUnit 库。

下面是HTMLUnit用于废弃(提取)网页的html元素的示例:

http://htmlunit.sourceforge.net/gettingStarted.html

相关问题