开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2373|回复: 3
收起左侧

[C#源码] C#【TaoBaoHelper】类

[复制链接]
发表于 2014-1-13 13:49:24 | 显示全部楼层 |阅读模式   浙江省杭州市
C#TaoBaoHelper类



功能:

        1.获取店铺所有的商品ID

        2.通过商品ID获取商品的HTML

就以上两个小功能,后面会添加更多的功能!希望大家多多支持哦!



辅助功能:

       1.过滤相同内容

       2.取文本中间内容

       3.取文本中间到List集合


代码如下:
  1. /// <summary>
  2. /// 类说明:获取店铺所有商品ID,然后调用获取到ID可获得制定的商品数据
  3. /// 编码日期:2014-01-13
  4. /// 编 码 人:Lese
  5. /// 联系方式:97354625  
  6. /// </summary>
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Linq;
  10. using System.Text;

  11. namespace TaoBaoHelper
  12. {
  13.     public class TaoBaoHelper
  14.     {
  15.         /// <summary>
  16.         /// 店铺商品页数
  17.         /// </summary>
  18.         private static int page = 1;

  19.         public static int Page
  20.         {
  21.             get { return TaoBaoHelper.page; }
  22.             set { TaoBaoHelper.page = value; }
  23.         }
  24.         /// <summary>
  25.         /// 循环判断
  26.         /// </summary>
  27.         private static bool b = false;

  28.         public static bool B
  29.         {
  30.             get { return TaoBaoHelper.b; }
  31.             set { TaoBaoHelper.b = value; }
  32.         }
  33.         /// <summary>
  34.         /// 储存每页的商品ID
  35.         /// </summary>
  36.         private static StringBuilder sb = new StringBuilder();

  37.         public static StringBuilder Sb
  38.         {
  39.             get { return TaoBaoHelper.sb; }
  40.             set { TaoBaoHelper.sb = value; }
  41.         }
  42.         /// <summary>
  43.         /// 返回的商品ID
  44.         /// </summary>
  45.         private static string[] id;

  46.         public static string[] ID
  47.         {
  48.             get { return TaoBaoHelper.id; }
  49.             set { TaoBaoHelper.id = value; }
  50.         }
  51.         /// <summary>
  52.         /// 取文本中间内容
  53.         /// </summary>
  54.         /// <param name="url">店铺域名 例如:http://june23day.taobao.com/ 必须是这个格式,可以直接点击店铺中的“所有分类”获得</param>
  55.         /// <returns>店铺所有商品</returns>
  56.         public static string[] ReadID(string url)
  57.         {
  58.             HttpHelper http = new HttpHelper();
  59.             while (B != true)
  60.             {
  61.                 HttpItem item = new HttpItem()
  62.                 {
  63.                     URL = url + "search.htm?pageNo=" + Page.ToString(),//URL     必需项   
  64.                     Method = "get",//URL     可选项 默认为Get   
  65.                     IsToLower = false,//得到的HTML代码是否转成小写     可选项默认转小写   
  66.                     Cookie = "",//字符串Cookie     可选项   
  67.                     Referer = "",//来源URL     可选项   
  68.                     Postdata = "",//Post数据     可选项GET时不需要写   
  69.                     Timeout = 10000,//连接超时时间     可选项默认为100000   
  70.                     ReadWriteTimeout = 10000,//写入Post数据超时时间     可选项默认为30000   
  71.                     UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统     可选项有默认值   
  72.                     ContentType = "text/html",//返回类型    可选项有默认值   
  73.                     Allowautoredirect = false,//是否根据301跳转     可选项   
  74.                     ProxyIp = "",//代理服务器ID     可选项 不需要代理 时可以不设置这三个参数   

  75.                 };
  76.                 HttpResult result = http.GetHtml(item);
  77.                 string html = result.Html;
  78.                 if (html.IndexOf("J_SearchAsync next") == -1)
  79.                 {

  80.                     foreach (String s in BetweenArr(html, "&itemIds=", "&source=shop"/>"))
  81.                     {
  82.                         Sb.Append("," + s);

  83.                     }
  84.                     B = true;
  85.                 }
  86.                 else
  87.                 {
  88.                     foreach (String s in BetweenArr(html, "&itemIds=", "&source=shop"/>"))
  89.                     {
  90.                         Sb.Append("," + s);
  91.                         Page++;
  92.                     }
  93.                 }
  94.             }
  95.             string[]uid = Sb.ToString().Split(',');
  96.             ID = RemoveLike(uid);
  97.             return ID;
  98.         }
  99.         /// <summary>
  100.         /// 获取商品数据
  101.         /// </summary>
  102.         /// <param name="ID">商品ID</param>
  103.         /// <returns>返回商品数据HTML</returns>
  104.         public static String ReadCommodity(string ID)
  105.         {
  106.             HttpHelper http = new HttpHelper();
  107.             HttpItem item = new HttpItem()
  108.             {
  109.                 URL = "http://item.taobao.com/item.htm?id=" + ID,//URL     必需项   
  110.                 Method = "get",//URL     可选项 默认为Get   
  111.                 IsToLower = false,//得到的HTML代码是否转成小写     可选项默认转小写   
  112.                 Cookie = "",//字符串Cookie     可选项   
  113.                 Referer = "",//来源URL     可选项   
  114.                 Postdata = "",//Post数据     可选项GET时不需要写   
  115.                 Timeout = 10000,//连接超时时间     可选项默认为100000   
  116.                 ReadWriteTimeout = 10000,//写入Post数据超时时间     可选项默认为30000   
  117.                 UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统     可选项有默认值   
  118.                 ContentType = "tehp/html",//返回类型    可选项有默认值   
  119.                 Allowautoredirect = false,//是否根据301跳转     可选项   
  120.             };
  121.             HttpResult result = http.GetHtml(item);
  122.             string html = result.Html;
  123.             return html;
  124.         }
  125.         /// <summary>
  126.         /// 过滤相同内容
  127.         /// </summary>
  128.         /// <param name="values">要过滤数组</param>
  129.         /// <returns>过滤后的数组</returns>
  130.         public static string[] RemoveLike(string[] values)
  131.         {
  132.             List<string> list = new List<string>();
  133.             for (int i = 0; i < values.Length; i++)//遍历数组成员
  134.             {
  135.                 if (values[i] != "")
  136.                 {
  137.                     if (list.IndexOf(values[i].ToLower()) == -1)//对每个成员做一次新数组查询如果没有相等的则加到新数组
  138.                         list.Add(values[i]);
  139.                 }

  140.             }

  141.             return list.ToArray();
  142.         }
  143.         /// <summary>
  144.         /// 取文本中间内容
  145.         /// </summary>
  146.         /// <param name="str">原文本</param>
  147.         /// <param name="leftstr">左边文本</param>
  148.         /// <param name="rightstr">右边文本</param>
  149.         /// <returns>返回中间文本内容</returns>
  150.         public static string Between(string str, string leftstr, string rightstr)
  151.         {
  152.             int i = str.IndexOf(leftstr) + leftstr.Length;
  153.             string temp = str.Substring(i, str.IndexOf(rightstr, i) - i);
  154.             return temp;
  155.         }
  156.         /// <summary>
  157.         /// 取文本中间到List集合
  158.         /// </summary>
  159.         /// <param name="str">文本字符串</param>
  160.         /// <param name="leftstr">左边文本</param>
  161.         /// <param name="rightstr">右边文本</param>
  162.         /// <returns>List集合</returns>
  163.         public static List<string> BetweenArr(string str, string leftstr, string rightstr)
  164.         {
  165.             List<string> list = new List<string>();
  166.             int leftIndex = str.IndexOf(leftstr);//左文本起始位置
  167.             int leftlength = leftstr.Length;//左文本长度
  168.             int rightIndex = 0;
  169.             string temp = "";
  170.             while (leftIndex != -1)
  171.             {
  172.                 rightIndex = str.IndexOf(rightstr, leftIndex + leftlength);
  173.                 if (rightIndex == -1)
  174.                 {
  175.                     break;
  176.                 }
  177.                 temp = str.Substring(leftIndex + leftlength, rightIndex - leftIndex - leftlength);
  178.                 list.Add(temp);
  179.                 leftIndex = str.IndexOf(leftstr, rightIndex + 1);
  180.             }
  181.             return list;
  182.         }
  183.     }
  184. }
复制代码

TaoBaoHelper.rar

2.23 KB, 下载次数: 14, 下载积分: 精币 -2 枚

结帖率:79% (23/29)

签到天数: 15 天

发表于 2017-4-27 14:18:48 | 显示全部楼层   江苏省镇江市
很不错的资源
回复 支持 反对

使用道具 举报

发表于 2017-4-9 14:26:14 | 显示全部楼层   北京市北京市
看不懂,也没有人回帖,好冷的帖子啊。
回复 支持 反对

使用道具 举报

结帖率:91% (138/151)
发表于 2014-4-1 01:18:38 | 显示全部楼层   广东省深圳市
看不懂,也没有人回帖,好冷的帖子啊。
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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