首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby Open-URI动态网站

Ruby Open-URI动态网站
EN

Stack Overflow用户
提问于 2013-05-15 03:45:03
回答 1查看 1.9K关注 0票数 4

我正在尝试使用open-uri来获取网站的html页面。然而,问题是网站需要几秒钟的加载时间才能正确地拥有正确的代码。我现在有的是:

代码语言:javascript
复制
require 'open-uri'

html = open('http://hiddencode.me/dribbbucket/embed.html?key=MY_API_KEY&bucket=56024-Glassboard&delay=5000')
response = html.read
puts response

如果我现在运行它,我会得到:

代码语言:javascript
复制
<div id="slam-dunk">
    <div id="loading">Loading..</div>
</div>

但是,网站需要在打开之前正确加载,才能获得正确的响应。有没有办法在ruby中做到这一点?如果ruby不是你的专长,我也可以使用另一种语言的解决方案!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-17 06:05:37

例如,我最近使用watir-webdriver完成了一个类似的任务。您将能够在javascript执行后查询DOM,并提取您想要的任何内容。如果你希望它是无头的,在我的例子中,我使用了无头宝石。

如果你想坚持使用'open-uri‘,那么你必须使用像httpfox这样的东西来观察javascript发出了哪些ajax请求。您也可以使用许多不同的工具来实现这一点。但在本例中,您需要在访问url之前启动httpfox。等到您看到您要抓取的信息出现,然后停止httpfox并检查每个请求,检查每个响应中与您要抓取的内容相关的内容。一旦您确定了正确的请求,您就可以将其用于open-uri。虽然这是最简单的解决方案,但由于web应用程序在如何与服务器交互和操作dom方面存在很大差异,因此不能保证这种解决方案。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16551605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档