c# – 使用没有url的WebBrowser自动下载文件

c# – 使用没有url的WebBrowser自动下载文件,第1张

概述我一直在使用System. Windows.Forms.WebBrowser编写一个用C#编写的WebCrawler.我试图从网站上下载文件并将其保存在本地计算机上.更重要的是,我希望这是完全自动化的.可以通过单击调用javascript函数的按钮来启动文件下载,该函数会激活下载,显示“是否要打开或保存此文件?”对话框.我绝对不想手动点击“另存为”,并输入文件名. 我知道HttpWebReques 我一直在使用System. Windows.Forms.Webbrowser编写一个用C#编写的WebCrawler.我试图从网站上下载文件并将其保存在本地计算机上.更重要的是,我希望这是完全自动化的.可以通过单击调用JavaScript函数的按钮来启动文件下载,该函数会激活下载,显示“是否要打开或保存此文件?”对话框.我绝对不想手动点击“另存为”,并输入文件名.

我知道httpWebRequest和WebClIEnt的下载功能,但由于下载是用JavaScript启动的,我现在知道该文件的URL. Fyi,JavaScript是一个doPostBack函数,可以更改某些值并提交表单.

我已经尝试将重点放在Webbrowser的save as对话框上,以便从那里自动化它,但没有取得多大成功.我知道有一种方法可以强制下载保存,而不是通过向http请求添加标头来保存或打开,但我不知道如何指定要下载的文件路径.

解决方法 我认为你应该阻止下载对话框显示.这可能是一种方法:

> Javascript代码会导致Webbrowser控件导航到特定的Url(导致下载对话框出现的原因)
>要防止Webbrowser控件实际导航到此Url,请将事件处理程序附加到Navigating事件.
>在您的导航事件中,您必须分析这是否是您想要停止的实际导航 *** 作(这是下载URL,也许是检查文件扩展名,必须有可识别的格式).使用WebbrowserNavigatingEventArgs.Url执行此 *** 作.
>如果这是正确的Url,请通过设置WebbrowserNavigatingEventArgs.Cancel属性来停止导航.
>使用httpWebRequest或WebClIEnt类继续自己下载

有关该活动的更多信息,请查看此页面:
http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.navigating.aspx

总结

以上是内存溢出为你收集整理的c# – 使用没有url的WebBrowser自动下载文件全部内容,希望文章能够帮你解决c# – 使用没有url的WebBrowser自动下载文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1249453.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存