-1

此链接的anchor变量内容:

anchor = <a href="javascript:void(0);" class="cvt-nowrap" onclick="javascript:window.open('http://url.com/persona/WebLinkEntryPoint.php?idowner=36054&amp;code=DetalleOferta&amp;idofe=140543&amp;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,我想知道是否可以提取此链接的下一个 url:

http://url.com/persona/WebLinkEntryPoint.php?idowner=36054&code=DetalleOferta&idofe=140544&no_links=true
4

1 回答 1

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&amp;code=DetalleOferta&amp;idofe=140543&amp;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"
于 2013-10-15T09:34:20.083 回答