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

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 5452|回复: 8

[其他] UChome无法登录

[复制链接]
发表于 2013-4-15 12:03:48 | 显示全部楼层 |阅读模式
要采集采用UChome的网站,例如(http://www.qingren.com/),用HttpWebRequest怎么都登陆不上(用了HttpHelper登陆),看了cookie里有逗号,不知是不是这个问题。


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-4-15 12:23:16 | 显示全部楼层
把你的代码贴出来,看看
 楼主| 发表于 2013-4-15 12:32:57 | 显示全部楼层
下面是代码,站长帮忙看看哈。  
         [code=csharp] item = new HttpItem()
           {
               URL = "http://www.qingren.com/do.php?ac=d15dbae10674f0ff3968acf3d27063db&&ref",//URL     必需项
               Encoding = "gbk",//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
               Method = "Post",//URL     可选项 默认为Get
               ContentType = "application/x-www-form-urlencoded",//返回类型    可选项有默认值
               Postdata = "cookietime=315360000&password="
               + URLEncode(textBox2.Text.Trim()) +
               "&username="
               + URLEncode(textBox1.Text.Trim()),//Post数据 使用URLEncode是为了解决中文用户名或者密码的问题    可选项GET时不需要写
           };
            //得到HTML代码
            string html = http.GetHtml(item);
            cookie = item.Cookie;
            //如果cookie存在说明登录成功
            if (!string.IsNullOrEmpty(cookie))
            {
                //登录成功后访问一下http://www.ganji.com/vip/account/edit_userinfo.php 看看是不是真的登录成功了
                item = new HttpItem()
                {
                    URL = "http://www.qingren.com/space.php?do=home",//URL     必需项
                    Encoding = "gbk",//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                    Method = "get",//URL     可选项 默认为Get
                    Cookie = cookie//当前登录Cookie
                };
                //得到HTML代码
                html = http.GetHtml(item);[/code]
发表于 2013-4-15 12:48:41 | 显示全部楼层
aaaak 发表于 2013-4-15 12:32
下面是代码,站长帮忙看看哈。

UChome就是个网站吗?http://www.qingren.com
你要访问那个站就说明
 楼主| 发表于 2013-4-15 12:55:27 | 显示全部楼层
http://www.qingren.com这个网站,采用UChome作为会员管理系统。
发表于 2013-4-15 13:36:07 | 显示全部楼层
[code=csharp]item = new HttpItem()
           {
               URL = "http://www.qingren.com/do.php?ac=d15dbae10674f0ff3968acf3d27063db&&ref",//URL     必需项
               Encoding = "gbk",//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
               Method = "Post",//URL     可选项 默认为Gets
               ContentType = "application/x-www-form-urlencoded",//返回类型    可选项有默认值
               Postdata = "username=账户&password=密码&refer=space.php%3Fdo%3Dhome&loginsubmit=+&formhash=4122b3cb"
           };[/code]

这样就可以登录了
另外,类主你的Postdata写的就不这个网站的包啊,好像是和例子里面的,不同的网站是不一样的,你使用的例子中的肯定是登录不了的,建议你去学习一下Http绝技
http://www.sufeinet.com/thread-6-1-1.html

 楼主| 发表于 2013-4-15 14:41:36 | 显示全部楼层
本帖最后由 aaaak 于 2013-4-15 14:48 编辑

用站长提供的postdata可以登陆成功(抓包看生成cookie正常),不过采集里面的页面还是跳到了登陆页面,麻烦站长再看看。
           //如果cookie存在说明登录成功
            if (!string.IsNullOrEmpty(cookie))
            {
                //登录成功后访问一下http://www.qingren.com/space.php?do=home 看看是不是真的登录成功了
                item = new HttpItem()
                {
                    URL = "http://www.qingren.com/space.php?do=home",//URL     必需项
                    Encoding = "gbk",//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                    Method = "get",//URL     可选项 默认为Get
                    Cookie = cookie//当前登录Cookie
                };
                //得到HTML代码
                html = http.GetHtml(item);
}
发表于 2013-4-15 14:49:38 | 显示全部楼层
aaaak 发表于 2013-4-15 14:41
用站长提供的postdata可以登陆成功(抓包看生成cookie正常),不过采集里面的页面还是跳到了登陆页面,麻烦 ...

可以登录了,使用登录后的cookie就行了
 楼主| 发表于 2013-4-15 15:01:52 | 显示全部楼层
是用登录后的cookie,不过获取到的页面还是登录页面的内容,获取cookie的方法不对?
Cookie = cookie//当前登录Cookie
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-11-25 06:05

© 2014-2021

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