当前位置: 首页 > 编程语言 > C#

使用C#运行Phantomjs拍摄网页快照

时间:2023-04-10 20:23:07 C#

使用C#运行Phantomjs拍摄网页快照我正在尝试使用phantomjs拍摄我自己网站的快照–基本上,这就是创建用户提交的内容“预览图像”。我在服务器上安装了phantomjs并确认从命令行运行它对于相应的页面工作正常。但是,当我尝试从网站运行它时,它似乎什么也没做。我已经确认代码正在被调用,幻影实际上正在运行(我监视进程,并且在我调用它时可以看到它出现在进程列表中)-但是,没有生成图像。我不知道我应该在哪里找出为什么它不会创建图像-有什么建议吗?相关代码块如下:stringarguments="/crasterize.jshttp://www.mysite.com/viewcontent.aspx?id=123";stringimagefilename=@"C:inetpubvhostsmysite.comhttpdocsUploadsimg123.png";Processp=newProcess();p.StartInfo.UseShellExecute=false;p.StartInfo.RedirectStandardOutput=true;p.StartInfo.CreateNoWindow=false;p.StartInfo.FileName=@"C:phantomjs.exe";p.StartInfo.Arguments=arguments+""+imagefilename;p.开始();字符串输出=p.StandardOutput.ReadToEnd();p.WaitForExit();我检查了phantomjs在其过程中抛出的错误。您可以从Process.StandardError中读取它们。varstartInfo=newProcessStartInfo();//这里还有一些其他参数...startInfo.RedirectStandardError=true;varp=newProcess();p.StartInfo=startInfo;p.开始();p.WaitForExit(timeToExit);//读取错误:stringerror=p.StandardError.ReadToEnd();它会让你知道发生了什么从C#代码执行phantomjs的最简单方法是使用像NReco.PhantomJS这样的包装器。以下示例显示了如何将它与rasterize.js一起使用:varphantomJS=newPhantomJS();phantomJS.Run("rasterize.js",new[]{"https://www.google.com",outFile});WrapperAPI有stdout和stderr的事件;它还可以提供来自C#Stream的输入并将标准输出结果读取到C#Stream。以上就是C#学习教程:使用C#运行Phantomjs获取网页快照分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: