我使用机械化登录到一个网页/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_s
或to_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>