Nokogiri没有抓取iframe
标签下的任何内容。
doc.search("iframe")
只返回iframe
标签。doc.search("body.content-frame")
返回空。doc.errors
也返回空。为什么Nokogiri不注册iframe下的HTML ?我怎样才能抓住它?
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body onunload="clearMyTimeInterval()">
<iframe id="content-frame" frameborder="0" src="/sportsbook/betting-lines/baseball/2014-08-21/?range=day" onload="javascript:checkLoadedFrame(this);" style="background-color: rgb(34, 34, 34); height: 1875px;" name="content-frame" scrolling="no" border="0">
#document
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body class="content-frame">
#ETC.......
这是因为iframe
的内容不是页面的一部分。事实上,它们位于完全不同的位置(注意iframe
的src
属性)。您必须单独获取该内容,这是浏览器的做法。
处理它的代码:
page = Mechanize.new.get "http://page_u_need"
page.iframe_with(id: 'beatles').content