如何获得机械化/Nokogiri的页面来源



我使用机械化登录到一个网页/servlet。

我有一个页面对象:

jobShortListPg = agent.get(addressOfPage)

当我使用:

puts jobShortListPg

我得到了我不想要的页面的"机械化"版本:

#<Mechanize::Page::Link "Home" "blahICScriptProgramName=WEBLIB_MENU.ISCRIPT3.FieldFormula.IScript_DrillDown&target=main0&Level=0&RL=&navc=3171">

如何获取页面的HTML源代码?

使用.body:

puts jobShortListPg.body

使用页面对象的content方法。

jobShortListPg.content

在Nokogiri中,在主文档节点上使用to_sto_html

require 'nokogiri'
doc = Nokogiri::HTML(<<EOT)
<html>
  <head></head>
  <body>foo</body>
</html>
EOT
doc.to_html
# => "<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">n" +
#    "<html>n" +
#    "  <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head>n" +
#    "  <body>foo</body>n" +
#    "</html>n"

或:

doc.to_s
# => "<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">n" +
#    "<html>n" +
#    "  <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head>n" +
#    "  <body>foo</body>n" +
#    "</html>n"

如果看到嵌入的新行会分散你的注意力,这可能会有所帮助:

puts doc.to_s
# >> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
# >> <html>
# >>   <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head>
# >>   <body>foo</body>
# >> </html>

相关内容

  • 没有找到相关文章

最新更新