anchor
变量内容此链接:
anchor = <a href="javascript:void(0);" class="cvt-nowrap" onclick="javascript:window.open('http://url.com/persona/WebLinkEntryPoint.php?idowner=36054&code=DetalleOferta&idofe=140543&no_links=true', '', 'left=10, top=10, width=1200, height=860, resizable=yes, scrollbars=yes, menubar=no, toolbar=no, directories=no, location=no, status=no'); return false;"><img src="http://static.cvtools.com/public/static/abantia/images/2013-04-02-11-14-50.7705_link.gif" border="0" align="absmiddle">Here text</a>
我正在使用nokogiri gem,我想知道是否可以提取此链接的下一个网址:
http://url.com/persona/WebLinkEntryPoint.php?idowner=36054&code=DetalleOferta&idofe=140544&no_links=true
答案 0 :(得分:2)
nokogiri是一个HTML解析器。 onclick处理程序中的url是javascript。 nokogiri不打算为你解析,所以你必须自己做。通过正则表达式,例如:
html = %q(<a href="javascript:void(0);" class="cvt-nowrap" onclick="javascript:window.open('http://url.com/persona/WebLinkEntryPoint.php?idowner=36054&code=DetalleOferta&idofe=140543&no_links=true', '', 'left=10, top=10, width=1200, height=860, resizable=yes, scrollbars=yes, menubar=no, toolbar=no, directories=no, location=no, status=no'); return false;"><img src="http://static.cvtools.com/public/static/abantia/images/2013-04-02-11-14-50.7705_link.gif" border="0" align="absmiddle">Here text</a>)
doc = Nokogiri.parse html
doc.xpath('//a[@onclick]').first.attributes['onclick'].content.match(/'([^']+)/)[1]
=> "http://url.com/persona/WebLinkEntryPoint.php?idowner=36054&code=DetalleOferta&idofe=140543&no_links=true"