像API一样地通过Dell设备SN号自动获取准确的设备型号

标题有点长哈,首先感谢实习生小x提供爬取的代码。由此可见一个人战斗的效率实在低得可怜啊。什么需求分析、后台前端都一个在make。当然,该抄的抄,改粘贴的地方粘贴。但还是一样令人心力绞碎啊。

嗯,再来解析一下标题。背景是这样的:某天,某客户设备盘查,需要提供设备SN号与之对于的准确型号(Dell设备)。收到后蹬蹬蹬到已有系统里面去查—>反馈查询结果(某一个是错误的结果)—->同时小s也在查啊(客户一个需求得费我们这多人力?,当然能良好地避免两份人力同时执行一件事是最好了)—->Dell官方网站通过客户提供的设备SN号查询的设备型号信息(尼玛,自己不会到官网查一下或登录系统执行几个命令来看看☹,客户就是客户,上帝嘛,233…)—->重新给客户反馈一个准确无误的结果。标题相关的背景介绍完毕,下面来实现一下标题中提到的事情。

开发语言:Python2.7 、使用框架:Django、主要用到的Python模块:re、urllib2 ( 用于爬取和正则匹配)。

Dell官网通过设备SN号查询设备信息(SN号,型号,快速服务编码)的网址为:

http://www.dell.com/support/home/cn/zh/cnbsdt1/product-support/servicetag/1XFTLG2/

上面红色字体为Dell设备SN号(并非Dell配件SN号哈)

django项目app中views.py里面的代码如下:

@login_required
def sn_to_model(request):
 sn = request.GET.get('sn', None)
 import urllib2
 import re
 baseurl = "http://www.dell.com/support/home/cn/zh/cnbsdt1/product-support/servicetag/"
 searchurl = baseurl + sn
 response = urllib2.urlopen(searchurl)
 html = response.read()
 name=re.findall('productName: \"(.*)\"', html)
 name=''.join(name)
 data = {'result': name}
 return JsonResponse(data)

django项目app中urls.py里面的代码如下:

url(r'^sn_to_model/$', views.sn_to_model, name='sn_to_model'),

就是这么简单,当然,这只是简单实现,要整合到新的系统中还需要做其他事情的(后话)。先来看看如何使用它:

嘟嘟嘟….打开Chomre的console:

serial number convert model for Dell device
serial number convert model for Dell device

日须三省啊,回到背景中的错误来,错误的主要源头是设备信息录入系统的时候搞错了。另外就是查询的姿势不太对(摊手),嘿嘿嘿,像小s的姿势就摆得比较好啊(官网查询,准到不能再准了)。啊哈哈哈~因此会有下面的想法。

新系统对Dell设备这方面的支持就是在设备录入的时候自动查取来自官方提供的设备型号,上面代码放到系统后台执行,避免录入过程(biubiubiu…)太过飞速导致擦肩而过了。还未从官网查询到准确的型号就已经提交保存数据到数据库了。以任务的方式,嵌入到创建设备信息的视图中自动执行。

昨天放了一晚上的假依旧睡不着啊,严重上火,明天是大寒你们都准备好吃白萝卜了没?反正我今晚自个就买了两个大白萝卜(得瑟勒…)

发布者

酷特尔

你不改变,时间又能为你做些什么?

3 thoughts on “像API一样地通过Dell设备SN号自动获取准确的设备型号”

发表评论

电子邮件地址不会被公开。 必填项已用*标注