Ruby Nokogiri Javascript解析

我需要从一个网站解析一个数组.我要解析的
Javascript部分如下所示:

_arPic[0] = "http://example.org/image1.jpg";
_arPic[1] = "http://example.org/image2.jpg";
_arPic[2] = "http://example.org/image3.jpg";
_arPic[3] = "http://example.org/image4.jpg";
_arPic[4] = "http://example.org/image5.jpg";
_arPic[5] = "http://example.org/image6.jpg";

我通过类似的东西获得整个javascript:

product_page = Nokogiri::HTML(open(full_url))    
product_page.css("div#main_column script")[0]

有没有一种简单的方法来解析所有变量?

最佳答案 如果我正确地读了你,你试图解析JavaScript并获得带有图像URL的Ruby数组吗?

Nokogiri只解析HTML / XML,因此您需要一个不同的库;粗略搜索会调出RKelly库,该库具有一个解析函数,该函数接受一个JavaScript字符串并返回一个解析树.

一旦你有一个解析树,你将需要遍历它并通过名称找到感兴趣的节点(例如_arPic),然后在赋值的另一侧获取字符串内容.

或者,如果它不必太强大(并且它不会),您可以使用正则表达式搜索JavaScript(如果可能):

/^\s*_arPic\[\d\] = "(.+)";$/

可能是一个很好的首发正则表达式.

点赞