想在一个论坛网页里面提取一些内容:
开始是先手动用IE去论坛登陆,用WebBrowser加载网页,但里面的图片很多,
每次都要等控件Navigate完毕后,才解析WebBrowser的HTMLDocumentClass,
这样实在是太慢了。
换了一种方法是,还是不行,有没有什么方法不用WebBrowser,获取网页代码,又可以登陆网站
(即使程序运行前手动登陆网站,也可以)
Web方面的知识不会,哪位高手帮我一下,下面是我在网上搜了一些代码拼凑出来的。
//我的想法是:程序运行前先调用:Login登陆网站,再用GetHtmlCode提取网页里面的内容。
//可是登陆网站时,根本都无法登陆。
class MyHttp
{
    internal static HTMLDocumentClass GetHtmlCode(Uri uri)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
       
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader s = new StreamReader(response.GetResponseStream(), Encoding.Default);        HTMLDocumentClass doc = new HTMLDocumentClass();
        IHTMLDocument2 doc2 = (IHTMLDocument2)doc;
        doc.close();

//网页的代码
        string str = Encoding.Unicode.GetString(
            Encoding.Convert(Encoding.Default
            , Encoding.Unicode, Encoding.Default.GetBytes(s.ReadToEnd()))
            );

        doc2.write(str);
        return doc;
    }
        
    internal static void Login(Uri uri)
    {
//如果改一下方法,doc 换成WebBrowser的HTMLDocumentClass,是可以登陆网站的。
        HTMLDocumentClass doc = GetHtmlCode(uri);
        
//填写用户名
        HTMLInputElementClass username = doc.all.item("username", 0) as dynamic;
        username.value = Properties.Resources.username;

//填写密码
        HTMLInputElementClass password = doc.all.item("password", 0) as dynamic;
        password.value = Properties.Resources.password;        HTMLInputElementClass loginsubmit = doc.all.item("loginsubmit", 0) as dynamic;、 //程序运行到这句时出现,IE弹出一个网页about:logging.php?action=login,根本都
//不是登陆的那个网站        loginsubmit.click();
    }
}