之前做了一个项目,记录下对于我来说比较新的技术,通过淘宝api获取商品信息。
不过,只能获取到一张图片,假如该商品有多张图片时,没法获取到,可以讨论下这个多张图片获取的。
View Code
1 using System; 2 using System.Collections; 3 using System.Configuration; 4 using System.Data; 5 using System.Linq; 6 using System.Web; 7 using System.Web.Security; 8 using System.Web.UI; 9 using System.Web.UI.HtmlControls; 10 using System.Web.UI.WebControls; 11 using System.Web.UI.WebControls.WebParts; 12 using System.Xml.Linq; 13 using Top.Api; 14 using Top.Api.Domain; 15 using Top.Api.Response; 16 using Top.Api.Request; 17 using System.Text.RegularExpressions; 18 19 namespace taobaoapi 20 { 21 public partial class wq : System.Web.UI.Page 22 { 23 public string purxx = ""; //页面返回值 24 public static string url = "http://gw.api.taobao.com/router/rest"; // 正式环境调用地址 25 public static string appkey = "21021937"; //淘宝开放平台上申请 26 public static string appsecret = "0b0257c389f57578a9ed4f3c12917948"; //淘宝开放平台上申请 27 28 protected void Page_Load(object sender, EventArgs e) 29 { 30 string[] ff = baobei_mess("http://detail.tmall.com/item.htm?spm=a1z10.3.0.109.NnZl9f&id=10935249260&");//需要得到产品信息的链接 31 purxx += ff[0] + ","; 32 purxx += ff[1] + ","; 33 purxx += ff[2]; 34 } 35 36 /// <summary> 37 /// 读取宝贝的信息 38 /// string[]{标题,图片地址,价格} 39 /// </summary> 40 /// <param name="str_url"></param> 41 /// <returns></returns> 42 public static string[] baobei_mess(string str_url) 43 { 44 str_url = str_url.Replace("http://", ""); 45 long id = long.Parse(pipei(str_url, 1));//正则匹配url里面的宝贝id 46 ITopClient client = new DefaultTopClient(url, appkey, appsecret);//连接初始化(TopSdk.dll) 47 ItemGetRequest req = new ItemGetRequest();//初始化取宝贝信息的方法(TopSdk.dll) 48 req.Fields = "title,pic_url,price";//要取的内容,可以添加更多 49 req.NumIid = id;//要读取的宝贝id 50 ItemGetResponse response = client.Execute(req);//执行,通过api通讯要求返回指定的xml信息 51 string title = response.Item.Title.ToString();//.Item.Title; 52 string picurl = response.Item.PicUrl.ToString(); 53 string price = response.Item.Price.ToString(); 54 string[] arry1 = { title, picurl, price, }; 55 return arry1; 56 } 57 58 /// <summary> 59 /// 获取链接中的id 60 /// </summary> 61 /// <param name="content"></param> 62 /// <param name="type"></param> 63 /// <returns></returns> 64 public static string pipei(string content, int type) 65 { 66 string result = ""; 67 string reg = ""; 68 switch (type) 69 { 70 case 1: 71 reg = @"[\?\&](item_id|id)\=([\d]+)"; break;//匹配宝贝id 72 } 73 Regex re = new Regex(reg); 74 MatchCollection matches = re.Matches(content); 75 System.Collections.IEnumerator enu = matches.GetEnumerator(); 76 while (enu.MoveNext() && enu.Current != null) 77 { 78 Match match = (Match)(enu.Current); 79 result += match.Groups[2]; 80 } 81 return result; 82 } 83 84 } 85 }
注意要引用:
using Top.Api;
using Top.Api.Domain;
using Top.Api.Response;
using Top.Api.Request;
引用dll:TopSdk.dll
purxx:为页面返回值