2012-09-29 109 views
2

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

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

编辑:我有Java的工作。

+0

您正在使用哪些编程语言/技术/库? – madhead

+0

是否只想抓取某些网站或类似网络蜘蛛的所有内容?如果你只是想从一个页面中提取文本,你可以使用像红宝石运行的nokogiri这样的工具。 – three

+0

请参阅编辑。 Java的。 –

回答

2

基本想法是检查在浏览器devtools(Chrome或萤火虫)页面。尝试找到特殊的ID或类。在您的网页上,这是<ul class='hproducts'>,它有一个列表<li class='hproduct'>使用它!

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

或者为他们的API更好的谷歌;)

1

硒的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

2

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

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

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