2

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

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

编辑:我必须使用 Java。

4

3 回答 3

2

基本上,这个想法是在浏览器开发工具(Chrome 或 Firebug)中检查页面。尝试找到特殊的 ID 或课程。在您的页面上,这是<ul class='hproducts'>有一个<li class='hproduct'>使用它的列表!

然后您拨打电话并获得响应并解析它。(Google for DOM、SAX、XPath...)这在语言和库之间有很大不同。例如,在 Java 上,我们有 JSoup 库,它可以获取 html(在这种情况下与 xml 有点不同,呵呵)并以方便的方式解析它。

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

于 2012-09-29T21:29:52.143 回答
2

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

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

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

于 2012-09-29T21:35:17.160 回答
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

于 2012-09-29T21:33:36.510 回答