【发布时间】:2011-07-07 04:11:24
【问题描述】:
我正在玩 Ruby + Hpricot 并构建一个简单的刮板。我可以毫无问题地与其他网站合作。但是如果一个页面完全是用 JavaScript 编写的,那它可以被刮掉吗? 但是,谷歌搜索结果页面现在似乎完全基于 JavaScript,除了一些内部链接。
这样写的页面能不能被 Mechanize 和 Hpricot 等常规工具抓取(我猜他们不能)
是否有可能尝试渲染页面(如浏览器)然后收集数据的工具/宝石?
谢谢!
编辑:感谢您的回复。我意识到直接爬谷歌是不对的,有一个 API 可以使用。我真正想知道的问题的核心是,是否有一个完全用 javascript 编写的页面(包括文本和内容 - 可能会被混淆。)是否有一个 gem 会尝试仅以文本和然后获取它的文本内容?
【问题讨论】:
-
你为什么要尝试抓取 Google,而不是使用他们的 API? (提示:Google 搜索结果在没有 JS 的情况下也能正常工作。至少如果您使用的是基于文本的网络浏览器。)
-
Google 可能不喜欢你抓取他们的网页。您应该使用他们的 API(并查看他们那里有哪些服务条款)
-
@Chris :谢谢,我正在与 lynx 核对他们用于常规文本结果页面的 URL。 @Thilo:我明白,我只是在学习,所以我可能只会处理几页。不要以为他们会(介意|关心)。
-
我有一个应用程序,它每晚在我的笔记本电脑上运行,它使用它们的 API 搜索 Google 和 Yahoo。当您可以以正确的方式获得完全干净的结果时,不要费心刮擦。
标签: ruby screen-scraping hpricot