C# 3.0 具有C#Web浏览器控件的多个页面
我试图通过C#net中的webbrowser控件从任何URL下载HTML内容。 我选择webrowser来处理Javascript问题。我正在使用webbrowser控件而不放置 它在表格上。它对一个url非常有效,但当我为多个url调用它时,我无法使用它 下载网页 这是密码C# 3.0 具有C#Web浏览器控件的多个页面,c#-3.0,webbrowser-control,C# 3.0,Webbrowser Control,我试图通过C#net中的webbrowser控件从任何URL下载HTML内容。 我选择webrowser来处理Javascript问题。我正在使用webbrowser控件而不放置 它在表格上。它对一个url非常有效,但当我为多个url调用它时,我无法使用它 下载网页 这是密码 GetWebpage() { System.Windows.Forms.WebBrowser wb = new System.Windows.Forms.WebBrowser();
GetWebpage()
{
System.Windows.Forms.WebBrowser wb = new System.Windows.Forms.WebBrowser();
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
wb.Navigate(sURI, false);
bDocumentLoaded = false;
while (!bDocumentLoaded)
{
Application.DoEvents();
Thread.Sleep(100);
}
sHTML = wb.DocumentText;
bDocumentLoaded = false;
}
活动:
private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
System.Windows.Forms.WebBrowser webBrowser1;
webBrowser1 = sender as WebBrowser;
string strTit = webBrowser1.DocumentTitle;
string str = webBrowser1.DocumentText;
bDocumentLoaded = true;
}
干杯,
Karthik您可以使用webclient对象从某个url获取数据 尝试使用下载字符串
public static void DownloadString (string address)
{
WebClient client = new WebClient ();
string reply = client.DownloadString (address);
Console.WriteLine (reply);
}
您也可以使用相同下载字符串的ASYC方法
我认为你的问题是一些网站检测到特定的浏览器类型,然后返回HTML
尝试设置WebClient对象的HeaderProperty
,这是HttpWebRequest
对象的列表
比如说
myWebClient.Headers.Add(“内容类型”,“应用程序/x-www-form-urlencoded”)
修改HTTPWEBRequest的useragent,然后添加到标头。
HTTPWEBRequest.UserAgent=“.NET Framework测试客户端”
您可以在中查看更多信息。我建议您使用mshtml和SHDocVW库,并使用以下答案中的方法:
我已经尝试过webclient对象,它工作得很好,但有一些页面被Javascript问题阻止。应用程序是否在(!bDocumentLoaded)时挂起?我也遇到了同样的问题,我很好奇其他人在做什么来让WebBrowser控件同步工作