# -*- coding: utf-8 -*- # !/usr/bin/env python import os, sys,time,datetime import urllib import requests from mongoengine import register_connection, PointField, DynamicDocument, StringField import simplejson as json from django.db.models.fields import DateTimeField PROJECT_ROOT = os.path.join(os.path.abspath(os.path.split(os.path.realpath(__file__))[0] + "/.."), '..') sys.path.insert(0, PROJECT_ROOT) os.environ.setdefault("DJANGO_SETTINGS_MODULE", "configs.testing") from script.base import init_env init_env(interactive = False) from apps.web.core.db import Searchable register_connection(alias = 'spider', name = 'spider', host = '211.159.224.10', port = 27119, username = 'service', password = 'oOzjoQcO5DyyiN97AY0NpzJ6vztjNpx5', authentication_source = 'admin') class xcyDevice(Searchable): devNo = StringField(default = '') logicalCode = StringField(default = '') meta = { 'collection': 'xcy_device', 'db_alias': 'spider', } # 根据二维码编号,获取设备更详细的信息 logicalFormat1 = 'XC%04d' logicalFormat2 = 'XC%05d' url1 = 'http://xcy365.com/gateway/agent/api/weixin/auth/device?deviceNo=%s&platformType=w' for ii in range(1590,15300): try: frm = logicalFormat1 if ii >= 10000: frm = logicalFormat2 logicalCode = frm % ii url = url1 % logicalCode response = requests.get(url) result = json.loads(response.content) if result['code'] == 500: print 'cant find devNo',logicalCode # time.sleep(1) continue redirect = result['data']['redirect'] listA = redirect.split('=') devNo = listA[1] newDec = xcyDevice(devNo,logicalCode) newDec.save() # time.sleep(1) print devNo,logicalCode except Exception,e: print '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!',e continue print('OK')