CLRSCR 发表于 2019-10-14 11:59:48

模拟TB搜索框下拉词获取教程[适合初级]

功能:获取淘宝搜索下拉框自动展示出的关键词

用到的技术:网络请求/JSON解析
分析:
1.首先使用浏览器(自用Google)打开TB,按F12,如图操作;

2.搜索框输入关键词,等弹出提示查看下方的网络请求;

发现有多条类似请求,就是它了,点击选中最后一条,查看右侧详细信息;

网址组成:
https://suggest.taobao.com/sug?code=utf-8&q=%E4%B9%A6%E5%8C%85&_ksTS=1571023845396_784&callback=jsonp785&k=1&area=c2c&bucketid=6
简单分析,替换搜索词即可
'q='与'&'之间的是输入关键词的UrlEncode编码,替换此处为自己输入的关键词
精简网址:
https://suggest.taobao.com/sug?code=utf-8&q=%E4%B9%A6%E5%8C%85&area=c2c
3.查看分析返回结果并构造JSON类:

返回为JSON格式,数据在result中,对象是数组中包含数组,代码为:
class TBJson
    {
      public string[][] result { get; set; }
    }

实现(代码最简):
首先NuGet引用Newtonsoft.Json;
代码页:using Newtonsoft.Json;
完整代码:
//关键词:
            string KeyWord = "书包";
            //构建网址
            string Url = "https://suggest.taobao.com/sug?code=utf-8&q=" + KeyWord + "&area=c2c";
            //网络请求
            WebClient webClient = new WebClient();
            Byte[] data = webClient.DownloadData(Url);
            string html = Encoding.UTF8.GetString(data);
            //JSON解析
            TBJson json = JsonConvert.DeserializeObject<TBJson>(html);
            //构建数据
            StringBuilder sb = new StringBuilder();
            foreach (var item in json.result)
            {
                sb.Append(item+"\r\n");
            }

            MessageBox.Show(sb.ToString());
执行结果:

结果:和TB搜索框下拉词相同;

可拓展:解析下拉词后面的子关键词/1688下拉词等



ibcadmin 发表于 2019-10-14 14:06:24

+1

mkmk123 发表于 2019-10-14 14:36:51


功能:获取淘宝搜索下拉框自动展示出的关键词
页: [1]
查看完整版本: 模拟TB搜索框下拉词获取教程[适合初级]