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

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 5623|回复: 4

[其他] 刚刚接触苏飞大神的httphelper,也是c#新手。百度登录怎么不成功呢?

[复制链接]
发表于 2014-1-12 13:54:00 | 显示全部楼层 |阅读模式
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 DotNet.Utilities;
using System.Threading;
namespace Baidu_login
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        Thread Login;
        private void Form1_Load(object sender, EventArgs e)
        {


        }


        public static string GetCookie()
        {
            HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "www.baidu.com",
                Method = "get",

            };
            string html = http.GetHtml(item);
            string cookie = item.Cookie;
            return cookie;
        }
        public static string GetToken(string cookie)
        {
            HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "https://passport.baidu.com/v2/api/?getapi&tpl=mn&apiver=v3&tt=1389498197148&class=login&logintype=dialogLogin&callback=bd__cbs__uchygg",
                Cookie = cookie,
                Method = "get",


            };
            string html = http.GetHtml(item);
            //MessageBox.Show(html);
            int i = html.IndexOf("token\" : \"", 1);
            string token = html.Substring(i, 42);
            token = token.Replace("token\" : \"", "");
            return token;
            //return "";
        }
        public static void Baidu_Login()
        {
            string cookie = GetCookie();
            string token = GetToken(cookie);
            HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "https://passport.baidu.com/v2/api/?login",
                Cookie = cookie,
                Method = "POST",
                Postdata = "staticpage=http%3A%2F%2Fwww.baidu.com%2Fcache%2Fuser%2Fhtml%2Fv3Jump.html&charset=utf-8&token=" + token + "&tpl=mn&apiver=v3&tt=1389498223980&codestring=&safeflg=0&u=http%3A%2F%2Fwww.baidu.com%2F&isPhone=false&quick_user=0&loginmerge=true&logintype=dialogLogin&splogin=rate&username=Linda%E7%9A%84%E5%A4%A9%E4%BD%BF&password=shanzhu&verifycode=&mem_pass=on&ppui_logintime=26832&callback=parent.bd__pcbs__fhf2px",
                Referer = "http://www.baidu.com/",
                UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",
            };
            string html = http.GetHtml(item);

            if (html.Contains("err_no=400032") || html.Contains("err_no=0"))
            {
                MessageBox.Show("登录成功!");
            }
            else
            {
                MessageBox.Show("登录失败!");
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Login = new Thread(Baidu_Login);
            Login.Start();

        }
    }
}




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-1-12 18:24:28 | 显示全部楼层
本帖最后由 南方 于 2014-1-12 18:26 编辑

包头的 内容类型要设置ContentType
发表于 2014-1-13 08:12:51 | 显示全部楼层
解决了?
回复

使用道具 举报

发表于 2017-10-19 13:19:31 | 显示全部楼层
解决了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-11-22 18:13

© 2014-2021

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