将淘宝数据包导入自己的商城系统
时间:2022-04-23
本文章向大家介绍将淘宝数据包导入自己的商城系统,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
淘宝网有一个淘宝助理,可以方便的将淘宝店的商品资源导出成csv格式的数据包。很多商城系统为了能快速输入商品,都会要求开发者能最大限度的利用淘宝数据包直接导入产品数据。
当然,数据包的产品字段与商城的产品表字段肯定不可能完全一致,但"宝贝名称","宝贝价格","宝贝描述"这三个字段,几乎是所有商城系统都有的.
下面是二种处理方法:
一、直接分析csv
1.淘宝的csv数据包是用"t"做为字段间的分隔符,每行数据是用"n"做为行分隔符 2.要注意的是:宝贝描述(html代码)本身也会包含换行符号,不过不是"n",而是"rn"---幸好是这样,不然的话,宝贝描述本身的换行符与数据每行的分隔符混在一起,就很难区分了.
下面是示例关键代码;
if (IsPostBack)
{
HttpFileCollection fc = Request.Files;
for (int i = 0; i < fc.Count; i++)
{
HttpPostedFile _file = fc[i];
string ext = Path.GetExtension(_file.FileName).ToLower();
string type = _file.ContentType;
if (ext == ".csv" && type == "application/vnd.ms-excel")
{
StreamReader sr = new StreamReader(_file.InputStream);
string sHeader = sr.ReadLine();
string sBody = sr.ReadToEnd();
string sTemp = sBody.Replace("rn", "");//将宝贝描述html代码中的"rn"去掉
string[] arrData = sTemp.Split('n'); //这里已经将每行的数据保存到数组arrData里了,数组里的每个元素再用"t"拆分,就是每行各字段的值
//...
优缺点:通用性强,也不依赖于其它任何组件,简单高效。但是如果以后淘宝的html编辑器修改了,比如保存时把"rn"换成"n",这种方法就不管用了.
二、借用oledb把数据包当作db来操作
oledb可以方便的操作access,excel等内容,我们可以把cvs文件在excel里另存为xls格式,然后就可以用oledb连接,用sql来查询了
HttpFileCollection fc = Request.Files;
if (fc.Count <= 0) {
Utils.Alert("请先上传数据包!", "javascript:window.history.back");
}
for (int i = 0; i < fc.Count; i++)
{
HttpPostedFile _file = fc[i];
string ext = Path.GetExtension(_file.FileName).ToLower();
string type = _file.ContentType;
if (ext == ".xls" && (type == "application/octet-stream"))
{
string _path = Server.MapPath("/upload/xls/");
Utils.CreateDir(_path);
string _filePath = _path + "product.xls";
_file.SaveAs(_filePath);//先保存到服务器
DataTable dtTable = new DataTable();
#region
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + _filePath + ";Extended Properties=Excel 8.0;"))
{
conn.Open();
//获取Sheet的名字。
DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new Object[] { null, null, null, "TABLE" });
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + schemaTable.Rows[0]["TABLE_NAME"] + "]", conn);//默认查询第一个工作表
try
{
adapter.Fill(dtTable);
}
catch (Exception ex)
{
//...
}
}
//to do list。。。
}
else {
Utils.Alert("数据包格式不对!", "javascript:window.history.back()");
}
}
优缺点:使用方便,可以把数据包当成常规的DataTable来操作,方便了数据库开发人员。但是服务器上必须要有oledb组件(而且oledb在64位系统下默认是跑不起来的)
- 微信公众平台增加更多统计项 让你更了解运营数据
- 用OpenCV计算道路交通流量的一个直观教程
- WPF Button TextBox 圆角
- 设置WPF窗体全屏显示:
- winform 、WPF传值方式详解
- 你一定要知道!数据科学家提高工作效率的基本工具
- MySQL 大数据操作注意事项
- Winform窗口里的嵌入WPF的UserControl,关闭Winform父窗体的方法
- LINQ分页和排序,skip和Take 用法
- 这或许是对小白最友好的python入门了吧——21,导入模块
- opoa介绍
- 数据库记录安全解决方案
- 基于计算机视觉和OpenCV:创建一个能够计算道路交通流量的应用
- 这或许是对小白最友好的python入门了吧——20,定义函数简单应用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 5.03-requests_ssl
- 5.04-requests_cookies
- 通过 Node.js 小示例学习浏览器缓存策略
- [未解决]报错: execjs._exceptions.ProgramError: TypeError: Cannot read property 'extend' of undefined
- 5.05-requests_cookies2
- 5.06-re
- Python3爬虫 利用百度地图api得到城市经纬度
- [未解决]报错: pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in y
- 6.01-re-split_chinese
- Mac上安装tesseract-OCR
- 6.02-news_re
- 6.03-news_xpath2
- 修改mysql密码
- 6.04-news_xpath3
- 6.05-btc