正在阅读:

Dell保修批量查询脚本

9,392

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

使用请注意:

1、从dell 的官方网站查询,确保准确, 请提前注册一个官网账号。 https://www.dell.com/

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

cookie可以使用editthiscookie插件导出,导出格式设置为 name=value 格式,或者使用F12 然后查看请求头中的cookie,复制到cookie.txt中。

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

4、脚本容错不多,如果出现错误,可能是cookie过期,导致了查询失败,请刷新查询页面,输入验证码提交后再次用脚本查询。

Cookie信息获取方法:

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

cookie

Dell查询URL为:

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

脚本代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Date: 2019/5/27
# Created by 独自等待
# Blog: https://www.waitalone.cn/
try:
    from lxml import html
    import requests
except ImportError:
    print u'请先安装lxml和requests库'
import codecs


class Dell(object):
    def __init__(self):
        self.header = {
            '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(),  # cookie信息从cookie.txt中读取,可以使用editthiscookie插件导出
        }
        # 结果保存在脚本目录下result.txt中
        self.result = codecs.open('result.txt', 'ab+', encoding='utf-8')
        # servicecode.txt为服务标签文件,每行一个
        self.load = open('servicecode.txt').readlines()

    def query(self, code):
        url = 'https://www.dell.com/support/home/cn/zh/cnbsd1/product-support/servicetag/%s/warranty' % code
        # response = None
        print u'\n正在查询服务标签:%s\n' % code
        self.result.write(u'您的 %s 的保修详情:\r\n\r\n' % code)
        try:
            response = requests.get(url, headers=self.header, timeout=10).content
        except requests.Timeout:
            raise SystemExit(u'网络超时')
        return response

    def parse(self):
        for line in self.load:
            res = self.query(line.strip())
            ll = html.fromstring(res)
            services = ll.xpath('//*[@id="printdivid"]/div/div[2]/table[2]/tbody/tr')
            for s in services:
                s_split = s.text_content().replace(' ', '').strip().split('\r\n')
                service = s_split[0]
                start_time = s_split[2]
                end_time = s_split[3]
                self.result.write(u'服务: %s 开始日期: %s 保修到期日期: %s\r\n\r\n' % (service, start_time, end_time))
                print u'服务: %s 开始日期: %s 保修到期日期: %s\n' % (service, start_time, end_time)
        print u'查询成功,结果保存于脚本目录下的result.txt文件中'
        self.result.close()


if __name__ == '__main__':
    dell = Dell()
    dell.parse()

 

dell

脚本打包下载:

内容包含了cookie及servicecode示例,请参考,使用时请将cookie内容替换为自己的。

链接: https://pan.baidu.com/s/11LJuEIRvmiaFiRbQqMwnMA

提取码: ts3a

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

  1. Sam
    2017-12-27 19:10

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

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

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

    • 独自等待
      2019-05-27 12:57

      先在dell官网上面注册个账号,登录,然后点击上面的dell查询网址,打开浏览器,按F12 复制cookie到cookie.txt中,剩下的就把查询的标签放到servicecode.txt中就行了。

  2. 运行错误
    2019-02-18 03:51

    Traceback (most recent call last):
    File “C:\Users\MSI\Desktop\d\dell_queryv2.py”, line 55, in
    ReadCode(scfile)
    File “C:\Users\MSI\Desktop\d\dell_queryv2.py”, line 50, in ReadCode
    ServiceCode(line.strip())
    File “C:\Users\MSI\Desktop\d\dell_queryv2.py”, line 37, in ServiceCode
    stag = tags[0]
    IndexError: list index out of range

    这是报错提示,谢谢

    • 独自等待
      2019-03-04 10:22

      我记得是否远程过你,已经搞定了?

      • 运行错误
        2019-03-04 11:22

        @独自等待:没有远程过我啊,我是第一次来这里,问题还是没解决

评论回复 运行错误

*

*

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