使用 Nokogiri 找到了正确的节点,但需要进一步搜索
Got the right node with Nokogiri, but need to search further
我正在使用这个。
doc = Nokogiri::HTML(open(url))
pic = doc.search "[text()*='hiRes']"
获取此脚本节点:
<script type="text/javascript">
var data = {
'colorImages': { 'initial':
[{"hiRes":"http://ecx.images-joes.com/images
/I/71MBTEP1W9L._UL1500_.jpg","thumb":"http://ecx.images-joes.com/images
/I/41xE2XADIvL._US40_.jpg","large":"http://ecx.images-joes.com/images
/I/41xE2XADIvL.jpg","main":{"http://ecx.images-joes.com/images
/I/71MBTEP1W9L._UX395_.jpg":[395,260],"http://ecx.images-joes.com/images
/I/71MBTEP1W9L._UX500_.jpg":[500,329],"http://ecx.images-joes.com/images
/I/71MBTEP1W9L._UX535_.jpg":[535,352],"http://ecx.images-joes.com/images
/I/71MBTEP1W9L._UX575_.jpg":[575,379]}
并且节点从那里继续前进..
但我唯一需要取出的是包含字符串的整个 URL。 "UL1500" 或 "hiRes:" 之后的 URL.. 例如。 http://ecx.images-joes.com/images/I/71MBTEP1W9L.UL1500.jpg
我查找了 Nokogiri returns 的 class,它是 Nokogiri::XML::NodeSet
但我不确定如何与它交互才能获得我需要的东西?
谢谢
是的。由于一般情况,它是一个 NodeSet。
在这种情况下,您可以尝试:
pic.children.first.content
我从仅使用 Nokogiri 到使用正则表达式..但最终找到了这个并且它像魔术一样工作!!
我正在使用这个。
doc = Nokogiri::HTML(open(url))
pic = doc.search "[text()*='hiRes']"
获取此脚本节点:
<script type="text/javascript">
var data = {
'colorImages': { 'initial':
[{"hiRes":"http://ecx.images-joes.com/images
/I/71MBTEP1W9L._UL1500_.jpg","thumb":"http://ecx.images-joes.com/images
/I/41xE2XADIvL._US40_.jpg","large":"http://ecx.images-joes.com/images
/I/41xE2XADIvL.jpg","main":{"http://ecx.images-joes.com/images
/I/71MBTEP1W9L._UX395_.jpg":[395,260],"http://ecx.images-joes.com/images
/I/71MBTEP1W9L._UX500_.jpg":[500,329],"http://ecx.images-joes.com/images
/I/71MBTEP1W9L._UX535_.jpg":[535,352],"http://ecx.images-joes.com/images
/I/71MBTEP1W9L._UX575_.jpg":[575,379]}
并且节点从那里继续前进..
但我唯一需要取出的是包含字符串的整个 URL。 "UL1500" 或 "hiRes:" 之后的 URL.. 例如。 http://ecx.images-joes.com/images/I/71MBTEP1W9L.UL1500.jpg
我查找了 Nokogiri returns 的 class,它是 Nokogiri::XML::NodeSet
但我不确定如何与它交互才能获得我需要的东西?
谢谢
是的。由于一般情况,它是一个 NodeSet。
在这种情况下,您可以尝试:
pic.children.first.content
我从仅使用 Nokogiri 到使用正则表达式..但最终找到了这个并且它像魔术一样工作!!