苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 5760|回复: 4

[HttpHelper] 站长帮我看看这个站怎么采,谢谢

[复制链接]
发表于 2017-12-2 00:43:12 | 显示全部楼层 |阅读模式
https://www.west.cn/services/paimai/?lab=one 我要采集的是下面的域名列表

我采取的方法:
1.先访问这个页面,得到cookie:ASPSESSIONIDQQQTRABQ=GBGJCEJALDHKNDHMAKKIEDIL(类似)
2、访问https://www.west.cn/services/dom ... amp;_=1512144131153这样的一个页面,它似乎生成了cookie:qtoken2016,但是获取不到
3、数据页面https://www.west.cn/services/pai ... Search=1&mods=1
因为前面少了个cookie,因此这个页面没能正确获取到数据。

请站长帮我看看问题出在哪?谢谢!


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

https://www.west.cn/services/dom ... tok&_=1512221607475类似链接返回的内容传递进去,生成这个Cookie。
[C#] 纯文本查看 复制代码
        [i][i][i][i][i]        #region 计算qtoken2016
[/i][/i][/i][/i][/i][i][i][i][i][i]        private static string Getqtoken2016(string source)
        {
            string cookie = "qtoken2016=";
            List<string> BaseStr = new List<string>();
            List<string> Serial = new List<string>();
            source = Utilities.GetMidStr(source, "=[", "]");
            string[] num = source.Split(',');
            for (int i = 0; i < num.Length; i++)
            {
                if (BaseStr.Count == 0 && num[i] == "92")
                {
                    for (int j = i + 1; j < num.Length; j++)
                    {
                        if (num[j] == "94")
                        {
                            i = j + 1;
                            break;
                        }
                        BaseStr.Add(num[j]);
                    }
                }
                else if (Serial.Count == 0 && num[i] == "92")
                {
                    for (int j = i + 1; j < num.Length; j++)
                    {
                        if (num[j] == "94") break;
                        Serial.Add(num[j]);
                    }
                }
            }
            BaseStr = List2Str(BaseStr);
            Serial = List2Str(Serial);
            for (int i = 0; i < Serial.Count; i++)
            {
                cookie += Ascii2Str(BaseStr[Convert.ToInt16(Serial[i])]);
            }
            return cookie;
        }
        private static List<string> List2Str(List<string> BaseStr)
        {
            List<string> str1 = new List<string>();
            string tem = "";
            for (int i = 0; i < BaseStr.Count; i++)
            {
                if (BaseStr[i] == "45")
                {
                    str1.Add(tem);
                    tem = "";
                }
                else
                {
                    tem += Ascii2Str(BaseStr[i], true);
                }
                if (i == BaseStr.Count - 1) str1.Add(tem);
            }
            return str1;
        }
        private static string Ascii2Str(string ascii, bool sub = false)
        {
            int m = 0;
            byte[] buf = new byte[1];
            if (sub) m = 1;
            buf[0] = (byte)(Convert.ToInt16(ascii) - m);
            return Convert.ToString(Encoding.ASCII.GetString(buf));
        }
[/i][/i][/i][/i][/i][i][i][i][i][i]        #endregion
[/i][/i][/i][/i][/i][i][i][i][i][i]
 楼主| 发表于 2017-12-2 23:28:56 | 显示全部楼层
cload 发表于 2017-12-2 22:59
将https://www.west.cn/services/dom ... tok&_=1512221607475类似链接返回的内容传递进去,生成这个Cookie ...

谢谢兄弟,我先来摸索一下,有问题再请教你啊
 楼主| 发表于 2017-12-3 12:05:29 | 显示全部楼层
问题已经解决,谢谢cload。
发表于 2017-12-4 09:00:42 | 显示全部楼层
我只是路过打酱油的。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-12-26 16:15

© 2014-2021

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