尝试通过C#中的InternetExplorer从URL读取内容时失败

时间:2017-09-13 13:49:31

标签: c# internet-explorer mshtml shdocvw

我有一个奇怪的行为,使用InternetExplorer对象从http站点读取信息:

我的代码到目前为止:

string url = "http://www.someURL.com"
InternetExplorer IE = new InternetExplorer();
IE.Visible = true;
IE.Navigate(url);
while (IE.Busy == true) {
     System.Threading.Thread.Sleep(500);
}

IHTMLDocument2 htmlDoc = IE.Document as IHTMLDocument2;
string sourceCode = htmlDoc.body.outerHTML;
IE.Quit();

此代码适用于某些Webistes,有些则不适用。对于那些没有的人,它失败了

  

System.Runtime.InteropServices.COMException

     

HRESULT E_FAIL

我找到了这些网站的解决方法,但我对此并不满意:

static private SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindows();
foreach (SHDocVw.InternetExplorer ii in shellWindows) {
        //Check URL or Title to figure out if this is my window
}

当我打开更多带有相同标题或URL的窗口时,我不知道哪一个是我之前打开的那个。

不幸的是,我无法共享无法正常工作的URL,因为无法从我的基础架构外部访问它。

0 个答案:

没有答案