yunchongTel.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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 = '116.62.228.194',
  18. port = 27017,
  19. username = 'dba',
  20. password = 'dayuan@2020..',
  21. authentication_source = 'admin')
  22. class yunxiangDevice(Searchable):
  23. meta = {
  24. 'collection': 'yunxiang_device',
  25. 'db_alias': 'spider',
  26. 'unique_together': {'gtel'}
  27. }
  28. class yunxiangUser(Searchable):
  29. meta = {
  30. 'collection': 'yunxiang_user',
  31. 'db_alias': 'spider',
  32. 'unique_together': {'uUser'}
  33. }
  34. # 先把所有的设备二维码编号爬下来
  35. # page=0
  36. # while True:
  37. # url = 'https://trade.api3.sdaascloud.com/trade/nearbyChargers?key=&page=%s&size=10&latitude=30.48029&longitude=114.42073&raidus=3000000000' % page
  38. # strhtml = requests.get(url,timeout = 15).text
  39. # result = json.loads(strhtml)
  40. # if result.has_key('data') and result['data'].has_key('content') and len(result['data']['content']) == 0:
  41. # break
  42. # for dev in result['data']['content']:
  43. # xzzDevice.get_collection().update({'qrId':dev['qrId']},{'$set':dev},upsert = True)
  44. # page += 1
  45. # 根据二维码编号,获取设备更详细的信息
  46. usersDict = {}
  47. ii = 0
  48. for dev in yunxiangDevice.get_collection().find():
  49. print ii
  50. ii += 1
  51. if not dev.has_key('uUser'):
  52. continue
  53. if usersDict.has_key(dev['uUser']):
  54. usersDict[dev['uUser']] += 1
  55. else:
  56. usersDict[dev['uUser']] = 1
  57. url1 = 'http://cdz.gpsserver.cn/USearch'
  58. ii = 0
  59. for user,count in usersDict.items():
  60. print ii
  61. ii += 1
  62. try:
  63. data = {'uUser':user,'sjtime':1614939644497}
  64. strhtml = requests.post(url1,data=data).text
  65. result = json.loads(strhtml)
  66. if len(result) == 0:
  67. continue
  68. data = result[0]
  69. data.update({'devCount':count})
  70. yunxiangUser.get_collection().update({'uUser':data['uUser']},{'$set':data},upsert=True)
  71. except Exception,e:
  72. continue
  73. print('OK')