Предполагая, что HTML выглядит как ...
<html>
<head>
...
</head>
<body>
<h1>Blah</h1>
<script type="text/javascript" language="JavaScript">
var foo = "abc";
var bar = { "alpha": "beta" };
var bar2 = { 'alpha': 'gamma' };
var baz = "xyz";
</script>
Other uninteresting content and tags here
</body>
</html>
Вы могли бы сделать немного Руби, как
json_text = the_html.split("\n").each { |l|
break $1 if (l.strip =~ /^var bar = (.*);$/)
}
require 'rubygems'
gem 'json'
require 'json'
json_data = JSON.parse(json_text)
puts json_data.inspect
Примечание: это очень хрупкий подход - изменения в структуре HTML или макете JS сломают вещи.
Самое большое предположение, что JSON будет в одной строке.