我是网络爬虫的初学者。我正在尝试抓取一个页面,例如这个页面: http ://shopping.yahoo.com/search;_ylt=AkzLiLhD9_ulIJy.SYSw9T0bFt0A?p=video&did=0
我需要提取搜索结果,例如:Amazon.com 或 antonline.com。任何人都可以帮我命名一些可以帮助我实现这一目标的技术、工具和软件吗?
编辑:我必须使用 Java。
我是网络爬虫的初学者。我正在尝试抓取一个页面,例如这个页面: http ://shopping.yahoo.com/search;_ylt=AkzLiLhD9_ulIJy.SYSw9T0bFt0A?p=video&did=0
我需要提取搜索结果,例如:Amazon.com 或 antonline.com。任何人都可以帮我命名一些可以帮助我实现这一目标的技术、工具和软件吗?
编辑:我必须使用 Java。
基本上,这个想法是在浏览器开发工具(Chrome 或 Firebug)中检查页面。尝试找到特殊的 ID 或课程。在您的页面上,这是<ul class='hproducts'>
有一个<li class='hproduct'>
使用它的列表!
然后您拨打电话并获得响应并解析它。(Google for DOM、SAX、XPath...)这在语言和库之间有很大不同。例如,在 Java 上,我们有 JSoup 库,它可以获取 html(在这种情况下与 xml 有点不同,呵呵)并以方便的方式解析它。
或者更好的谷歌搜索他们的 API ;)
从 URL 读入文件。这将是所有标记。
应用正则表达式以使用页面中的模式提取数据。
检查标记并梳理数据中的模式,然后编写正则表达式来提取数据。我在这里假设您需要每个项目的标题和价格。因此,例如,我在您的示例文件中看到所有标题都包含在 中<li class ='hproduct'>
,并且所有价格都包含在 中<p class='price'>
。编写一个正则表达式,按该顺序查找这些 div 的内容。
Selenium WebDriver可以做到:
http://seleniumhq.org/projects/webdriver/
一年前我曾经用它来提取红宝石,但它仍然适用于 Java。
也看看Watir : (http://watir.com)
文章中的一个示例:(使用 Ruby)
您还可以查找HTMLUnit库。
下面是一个带有 HTMLUnit 的示例,用于抓取(提取)网页的 html 元素: