xcy365.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. import os, sys,time,datetime
  4. import urllib
  5. import requests
  6. from mongoengine import register_connection, PointField, DynamicDocument, StringField
  7. import simplejson as json
  8. from django.db.models.fields import DateTimeField
  9. PROJECT_ROOT = os.path.join(os.path.abspath(os.path.split(os.path.realpath(__file__))[0] + "/.."), '..')
  10. sys.path.insert(0, PROJECT_ROOT)
  11. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "configs.testing")
  12. from script.base import init_env
  13. init_env(interactive = False)
  14. from apps.web.core.db import Searchable
  15. register_connection(alias = 'spider',
  16. name = 'spider',
  17. host = '211.159.224.10',
  18. port = 27119,
  19. username = 'service',
  20. password = 'oOzjoQcO5DyyiN97AY0NpzJ6vztjNpx5',
  21. authentication_source = 'admin')
  22. class xcyDevice(Searchable):
  23. devNo = StringField(default = '')
  24. logicalCode = StringField(default = '')
  25. meta = {
  26. 'collection': 'xcy_device',
  27. 'db_alias': 'spider',
  28. }
  29. # 根据二维码编号,获取设备更详细的信息
  30. logicalFormat1 = 'XC%04d'
  31. logicalFormat2 = 'XC%05d'
  32. url1 = 'http://xcy365.com/gateway/agent/api/weixin/auth/device?deviceNo=%s&platformType=w'
  33. for ii in range(1590,15300):
  34. try:
  35. frm = logicalFormat1
  36. if ii >= 10000:
  37. frm = logicalFormat2
  38. logicalCode = frm % ii
  39. url = url1 % logicalCode
  40. response = requests.get(url)
  41. result = json.loads(response.content)
  42. if result['code'] == 500:
  43. print 'cant find devNo',logicalCode
  44. # time.sleep(1)
  45. continue
  46. redirect = result['data']['redirect']
  47. listA = redirect.split('=')
  48. devNo = listA[1]
  49. newDec = xcyDevice(devNo,logicalCode)
  50. newDec.save()
  51. # time.sleep(1)
  52. print devNo,logicalCode
  53. except Exception,e:
  54. print '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!',e
  55. continue
  56. print('OK')