2015-04-22 44 views
0

我从第三方网站上的网址应该是一个脚本代码的来源,是这样的:是否有可能获得由脚本生成的HTML

<script src="<%= @url %>"></script> 

上面的代码显示了一个Web窗体。

我想获得通过,导致该代码的HTML代码,并存储到一个变量,像这样:

html_code = get_html('<script src="<%= @url %>"></script>') 

这是可能使用的Ruby/Rails(可能使用引入nokogiri)?

+0

你想阻止代码运行,只是查看它,或者你介意它是否运行?或者你正在寻找该代码生成的HTML? – Dan

+0

@FelesMortis是的我正在寻找的代码生成的HTML,我想影响到一个变量的代码,看到我的问题,并让我知道如果它清楚:) – medBo

+0

有两种方式可以生成HTML(大部分)。它可以通过document.write将html(或其他数据)写入到脚本所在的位置,在这种情况下,您可以使用javascript查看(或者如果您对此更加熟悉,则可以使用ruby/rails;另一种方式是通过修改页面上的其他元素的html。添加/删除/更改这很难找到,但我建议获取页面的HTML'$('html')。html()'然后运行脚本,然后再次获取html和扫描差异 – Dan

回答

1

如果你在浏览器中使用jQuery和代码显示了在一个定义良好的位置,例如与特定id一个<div>那么你可以使用浏览器的JavaScript控制台抓住它:

$('#the_id').html() 

这将显示该元素的原始HTML,假定它将其内容转储到ID为the_id的元素中。你可以使用任何CSS选择器工作。

HTML在你的文档中的位置不可能从你的例子中看出来。 A <script>可以在文档的任何位置添加所需的任何元素。你必须环顾四周,看看它发生了什么。

+0

我可以使用红宝石来做到这一点吗?我更新了我的问题要更清楚,谢谢 – medBo

+0

技术上是的,但实际上没有。它涉及在Ruby内运行[PhantomJS](http://phantomjs.org/)作为[一个宝石](https://github.com/colszowka/phantomjs-gem)以及一大堆希望并祈祷你的无头浏览器将以与真实客户相同的方式行事。 Ruby本身无法理解JavaScript或模拟它运行的浏览器环境。 – tadman

0

将页面加载到浏览器中,然后在浏览器中执行查看/源代码。这会让你查看生成的网页,你可以找到什么URL被放入<script>标签。

相关问题