Dan*_*olm 8 wolfram-mathematica
我想将网页的输出插入到笔记本中(本质上是文本或html"屏幕截图").不需要它"活",它只是供参考.
理想情况下,它看起来很像在网络浏览器上.我希望它是不可评估的,我不希望前端尝试将其格式化为非常错误的Mathematica表达式
(编辑添加:创建单元格并执行"单元格 - >转换为 - >文本显示"是一种很好的方式来显示文本而不需要前端重新格式化.我想知道这是否是"正确"的方法这样做或者有更好的方法,特别是如果我想要html格式或图形也是如此)
据我所知,Mathematica无法呈现HTML页面.使用Import您可以从基于HTML的网站和文件中获取各种内容.一种选择是获得基于文本的网站版本,如下所示:
Import["http://reference.wolfram.com/mathematica/guide/Mathematica.html", "Plaintext"]
Run Code Online (Sandbox Code Playgroud)
如果您使用的是Windows(使用.NET),则可以将Mathematica的NETLink功能与WebBrowser类结合使用来捕获网页的屏幕截图:
Needs["NETLink`"]
LoadNETType["System.Drawing.Imaging.ImageFormat", AllowShortContext -> False]
LoadNETType["System.Windows.Forms.WebBrowserReadyState", AllowShortContext -> False]
Options[dotNetBrowserScreenshot] = {Width -> 1024, Height -> Automatic};
dotNetBrowserScreenshot[uri_, OptionsPattern[]] :=
NETBlock @ Module[{browser, bitmap, tempFile, image, bounds}
, browser = NETNew["System.Windows.Forms.WebBrowser"]
; browser@Width = OptionValue[Width]
; browser@ScrollBarsEnabled = False
; browser@Navigate[uri]
; tempFile = Close@OpenWrite[]
; While[browser@ReadyState =!= System`Windows`Forms`WebBrowserReadyState`Complete
, Pause[0.05]
]
; bounds = browser@Document@Body@ClientRectangle
; browser@Height = OptionValue[Height] /. Automatic -> bounds@Height
; bitmap = NETNew["System.Drawing.Bitmap", browser@Width, browser@Height]
; browser@DrawToBitmap[bitmap, bounds]
; browser@Dispose[]
; bitmap@Save[tempFile, System`Drawing`Imaging`ImageFormat`Png]
; bitmap@Dispose[]
; image = Import[tempFile, "PNG"]
; DeleteFile[tempFile]
; image
]
Run Code Online (Sandbox Code Playgroud)
样品用途:

可以使用Height -> Automatic(这是默认值)捕获完整的网页.请注意,屏幕截图以缩小的放大率显示.