5

Webサイトから配列を解析する必要があります。解析したい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]

すべての変数を解析する簡単な方法はありますか?

4

2 に答える 2

2

私があなたを正しく読んだ場合、あなたは JavaScript を解析し、画像 URL を含む Ruby 配列を取得しようとしています。

Nokogiri は HTML/XML のみを解析するため、別のライブラリが必要になります。大雑把に検索すると、JavaScript 文字列を受け取って解析ツリーを返す関数を持つRKellyライブラリが見つかります。parse

解析ツリーを取得したら、それをトラバースして名前 (例: ) で対象のノードを見つけ_arPic、割り当ての反対側の文字列コンテンツを取得する必要があります。

または、あまり堅牢である必要がない場合 (そうではない場合) は、可能であれば正規表現を使用して JavaScript を検索できます。

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

良いスターター正規表現かもしれません。

于 2013-01-22T15:36:11.540 に答える
0

簡単な方法:

_arPic = URI.extract product_page.css("div#main_column script")[0].text

これは次のように短縮できます。

_arPic = URI.extract product_page.at("div#main_column script").text
于 2013-01-23T01:36:08.033 に答える