正在阅读:

Dell保修批量查询脚本

4,227

Dell保修批量查询脚本,帮同事写的,有需要的拿去用吧。

详情介绍:

1、从dell 的官方网站查询,确保准确。

2、不登录时需要验证码,登录后则不需要,所以需要保存登录后的cookie到cookie.txt中。

3、将要查询的保修代码保存到servicecode.txt中,一行一个。

4、脚本容错不多,如果出现错误,可能是cookie过期,导致了查询失败。

5、使用lxml解析html,速度还可以,只是dell网站速度比较慢。

6、如果只需要开始日期和结束日期,请使用v2版本,v1版本更详细。

Cookie信息获取方法:

登录状态下,访问下面的查询URL,然后按F12,查看请求头里面的cookie信息,全部复制,然后保存到cookie.txt中。

Dell查询URL为:

http://www.dell.com/support/home/cn/zh/cnbsd1/product-support/servicetag/FTQJY01/warranty

脚本代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2017-2-15
# @Author  : 独自等待 (xliang@vip.qq.com)
# @Link    : https://www.waitalone.cn/
# @Version : v2.0

try:
    from lxml import html
except ImportError:
    raise SystemExit("未找到lxml模块,请使用pip安装后运行!")

import urllib2

headers = {
    'Upgrade-Insecure-Requests': '1',
    'Cache-Control': 'max-age=0',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',
    'Cookie': open('cookie.txt').read()
}


def ServiceCode(sc):
    "Dell保修详情自动查询函数"
    sc_url = 'http://www.dell.com/support/home/cn/zh/cnbsd1/product-support/servicetag/%s/warranty' % sc
    towrite = u'您的 %s 的保修详情:\n' % sc
    result_file = open('results.txt', 'ab+')
    try:
        req = urllib2.Request(sc_url, headers=headers)
        res = urllib2.urlopen(req, timeout=30).read().decode('utf-8')
    except Exception as e:
        raise e
    else:
        ll = html.fromstring(res)
        tags = ll.xpath('//span[@class="not-bold"]/text()')
        stoptime = ll.xpath('//table[2]/tbody/tr/td[3]/text()')[0]
        stag = tags[0]
        sdeliver = tags[1]
        print u'\n服务标签:%s 发货日期:%s 结束日期:%-10s\n' % (stag, sdeliver, stoptime)
        towrite += u'\n服务标签:%s 发货日期:%s 结束日期:%-10s\n' % (stag, sdeliver, stoptime)
    result_file.write(towrite.encode('utf-8') + '\n')
    result_file.close()


def ReadCode(sfile):
    "读取服务代码函数"
    with open(sfile) as sfiles:
        lines = sfiles.readlines()
        for line in lines:
            ServiceCode(line.strip())


if __name__ == '__main__':
    scfile = 'servicecode.txt'  # 指定servicecode文件名称
    ReadCode(scfile)

查询结果

脚本打包下载:

点我下载

目前有:1条访客评论,博主回复1

  1. Sam
    2017-12-27 19:10

    搞不定哦。。。运行没反应。。。而且你说的查询URL都不知道如何查询,能否再详细介绍一下,谢谢

    • 独自等待
      2017-12-28 09:47

      这个先安装python2.7.13,然后你要在浏览器中登录dell网站,获取cookie,cookie的格式参考文件cookie.txt 剩下的就可以全自动查询了。 脚本可用的,除非dell官网修改了查询方式。

留下脚印,证明你来过。

*

*

流汗坏笑撇嘴大兵流泪发呆抠鼻吓到偷笑得意呲牙亲亲疑问调皮可爱白眼难过愤怒惊讶鼓掌