我正在使用OpenURI检索网页:
require 'open-uri'
page = open('http://www.example.com').read.scrub
现在,我想解析检索页面的属性
playerurl
,playerdata
和pageurl
的值。它们显示在<script>
标记中:<script>
..
..
PlayerWatchdog.init({
'playerurl': 'http://cdn.static.de/now/player.swf?ts=2011354353',
'playerdata': 'http://www.example.com/player',
'pageurl': 'http://www.example.com?test=2',
});
..
..
</script>
什么是最明智的方式来做到这一点?
最佳答案
Ruby没有内置的javascript解析功能。您可以使用正则表达式,尽管这对页面的格式非常敏感(例如,如果页面开始使用双引号来表示字符串,则此表达式会中断):
playerurl = page[/'playerurl':\s*'([^']*)'/, 1]