http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 6677|回复: 3

[WebBrowser] CSharp WinForm WebBrowser 登录百度知道

[复制链接]
发表于 2014-3-14 18:59:44 | 显示全部楼层 |阅读模式
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Web;

namespace CSharp_WinForm_WebBrowser_登录百度
{
    public partial class Form1 : Form
    {
        //非静态的不能直接使用,要新建一个对象来调用
        CookieContainer cc = new CookieContainer();
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            #region 账号密码POST进去
            //账号密码POST进去
            string BAIDU_Url = "http://passport.baidu.com/?login";
            //请求网页
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(BAIDU_Url);
            req.Method = "POST";
            req.ContentType = "application/x-www-form-urlencoded";
            req.AllowAutoRedirect = false;
            //把账号密码登录
            byte[] postData = System.Text.Encoding.Default.GetBytes("username=" + this.textBox1.Text + "&password=" + this.textBox2.Text + "&men_pass=");

            req.ContentLength = postData.Length;
            req.CookieContainer = cc;
            using (Stream sm = req.GetRequestStream())//请求的数据流
            {
                sm.Write(postData, 0, postData.Length);
            }
            #endregion

            string strResult;//定义一个字符串来得到读出数据的值
            //回应网页,资源来自网页中
            HttpWebResponse res = (HttpWebResponse)req.GetResponse();
            res.Cookies = cc.GetCookies(req.RequestUri);//获取Cookies实例
            using (Stream smRes = res.GetResponseStream())//用来获取从服务器中的数据流
            {
                using (StreamReader sr = new StreamReader(smRes, System.Text.Encoding.Default))
                {
                    strResult = sr.ReadToEnd();
                }
            }
            res.Close();

            req = (HttpWebRequest)WebRequest.Create(" http://zhidao.baidu.com/q?ct=17&rn=25&lm=393738&tn=ikpsask2");
            req.CookieContainer = cc;
            res = (HttpWebResponse)req.GetResponse();
            using (Stream smRes = res.GetResponseStream())
            {
                using (StreamReader sr = new StreamReader(smRes, System.Text.Encoding.Default))
                {
                    strResult = sr.ReadToEnd();
                }
            }
            res.Close();

            string filename = Path.GetTempFileName();
            using (StreamWriter sw = new StreamWriter(filename, false, System.Text.Encoding.Default))
            {
                sw.Write(strResult);
            }
            this.webBrowser1.Navigate("file://"+filename);
        }
    }
}
其中:req = (HttpWebRequest)WebRequest.Create(" http://zhidao.baidu.com/q?ct=17&rn=25&lm=393738&tn=ikpsask2");
create后面的参数是什么?为什么我加上那个会出现网站访问错误



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-3-16 09:39:51 | 显示全部楼层
因为网址参数是动态生成的
 楼主| 发表于 2014-3-16 18:50:37 | 显示全部楼层
非常感谢你帮了我的大忙,真的太感谢你啦!
发表于 2014-10-27 07:16:11 | 显示全部楼层
强烈支持楼主ing……
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-22 12:45

© 2014-2021

快速回复 返回顶部 返回列表