# -*- 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 from bson import ObjectId register_connection(alias = 'spider', name = 'spider', host = '211.159.224.10', port = 27119, username = 'service', password = 'oOzjoQcO5DyyiN97AY0NpzJ6vztjNpx5', authentication_source = 'admin') class Goverment(Searchable): province = StringField(default = "") city = StringField(default = "") name = StringField(default = '') lat = StringField(default = '') lng = StringField(default = '') meta = { 'collection': 'Goverment', 'db_alias': 'spider', 'unique_together': {'lat', 'lng'} } class haokuaichongDevice(Searchable): meta = { 'collection': 'haokuaichong_device', 'db_alias': 'spider', } class haokuaichongOtherDevice(Searchable): meta = { 'collection': 'haokuaichong_other_device', 'db_alias': 'spider', } # 分析公众号 # url = 'http://ap3202.haokuaichong.cn/quickuser50/charge/info?device=%s&port=FF&cmd=0' # cookie = 'JSESSIONID=8E5A27C36409661680FCADD921EF267A;tgw_l7_route=8601cd2f2bac0d2b07a50c969c168416' # auth = 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoidXNlciIsImVuY3J5SWQiOiJOakEzTXpNMU1RPT0iLCJpc3MiOiJxdWlja191c2VyXzAwMSIsImlhdCI6MTY0OTQwMDIyNiwiYXVkIjoicXVpY2tfdXNlcl9hcGkiLCJleHAiOjE2NDk0MDM4MjYsIm5iZiI6MTY0OTQwMDIyNn0.C1KXB77mjkhsof01NGFoWM_TdSLeZ3OlWVuIiqLZXAw' # for ii in range(80,290000): #00,01,02,03 # logicalId = ('%02xE1A704' % ii).upper() # url1 = url % logicalId # strhtml = requests.get(url1,headers = {'Cookie':cookie,'Authorization':auth}).text # result = json.loads(strhtml) # print result # if result['msg'] == u'请勿跨公众号使用': # print '------------------->',logicalId # 根据二维码编号,获取设备更详细的信息 url = 'http://ap3202.haokuaichong.cn/quickuser50/charge/info?device=%s&port=00&cmd=1' cookie = 'JSESSIONID=8E5A27C36409661680FCADD921EF267A;tgw_l7_route=8601cd2f2bac0d2b07a50c969c168416' auth = 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoidXNlciIsImVuY3J5SWQiOiJOak0wT0RVME13PT0iLCJpc3MiOiJxdWlja191c2VyXzAwMSIsImlhdCI6MTY1MTE0MDc0MywiYXVkIjoicXVpY2tfdXNlcl9hcGkiLCJleHAiOjE2NTExNDQzNDMsIm5iZiI6MTY1MTE0MDc0M30.5C4E1fqe-C73SFVIORYBKhUb5pxmNrl-p0ukuT2_Ll8' devIds = [rcd for rcd in haokuaichongOtherDevice.get_collection().find({'projectId':None})]#,'_id':{'$gt':ObjectId("6253f82e2be18bf0dc979429")}})] ii = 0 for devIdObj in devIds[5000:]: #7174 devId = devIdObj['deviceId'] ii += 1 if ii % 100 == 0: print ii,devIdObj['_id'] try: url1 = url % devId strhtml = requests.get(url1,headers = {'Cookie':cookie,'Authorization':auth}).text result = json.loads(strhtml) if result['code'] == 500 : continue if result['code'] == 70004: print ii, 'token 过期',devIdObj['_id'] break dev = result['data'] dev['code'] = devId haokuaichongOtherDevice.get_collection().update({'deviceId':devId},dev,upsert = True) print ii,'catch new one!!!!' except Exception,e: print 'ExceptionExceptionExceptionExceptionException',e continue print('OK')