def _get_time(self, time): if time.upper() == 'NOW': return self.call("system.searchByName", '\w')[0]['last_checkin'] elif len(time) > 0: return time else: raise Exception("Time not specified")
def convert_time(time): time = time.upper() time, ap = time.split(' ') hour, minute = time.split(':') hour = int(hour) minute = int(minute) time = 60 * hour + minute if ap == 'PM': time += 12 * 60 return time
def __getIntFromTime(self, time): pm = False if "PM" in time.upper(): pm = True if "." in time or ":" in time: time = time.replace(":",".") time = time[:time.find(".")] time = int(time.replace("AM", "").replace("PM", "").replace("am", "").replace("pm", "")) if pm: time = int(time)+12 return str(time)
def start(token, sendkey, ss): flag = False print('ss is ' + str(ss)) url = 'https://tieba.baidu.com/f?kw=%E6%8B%BC%E5%A4%9A%E5%A4%9A%E9%BB%91%E5%8D%A1&ie=utf-8&pn=0' response = requests.get(url, timeout=(10, 10)) selector = etree.HTML(response.text) now = datetime.now() now_str = now.strftime('%Y-%m-%d ') rs = [] for i in selector.xpath('//*[@id="thread_list"]/li'): flag = True #读到数据视为成功 ttexts = i.xpath('div/div[2]/div[1]/div[1]/a/text()') if len(ttexts) < 1: continue title = ': ' + ttexts[0] bodys = i.xpath('div/div[2]/div[2]/div[1]/div/text()') if len(bodys) > 0 and len(replaceStr(bodys[0])) > 0: title = title + bodys[0] if title.find("五级") == -1 and title.find("5级") == -1 and title.find( "六级") == -1 and title.find("6级") == -1: continue time = replaceStr( i.xpath('div/div[2]/div[1]/div[2]/span[2]/text()')[0]) if time.upper().find(":") == -1: continue dt_time = datetime.strptime(now_str + time, '%Y-%m-%d %H:%M') if (now - dt_time).seconds > ss: continue print(title, ' ---------- ', dt_time) rs.append(time + title) # 推送消息 if len(rs) > 0: sp = '%0D%0A' #推送的换行符 url = 'https://push.100180.xyz:48190/wecomchan?sendkey=' + sendkey + '&msg_type=text&msg=pdd-hk [' + str( ss) + 's] ' + now.strftime(tformat) + sp + sp msg = sp.join(rs) resp = requests.get(url + msg, timeout=(10, 10), auth=HTTPBasicAuth("admin", token), verify=False) if resp.status_code != 200 and resp.status_code != 201: #推送失败视为整体失败,下次执行时任然可以拉取 print('letserver push error -> ' + str(resp.status_code)) flag = False if flag == True: cacheTime()
def save_data(data): listdir = os.listdir('pse_data/'+ time.upper() +'/') if len(datapoints) > 30: if datetoday in listdir: filename = 'pse_data/'+ time.upper() +'/'+ datetoday + '/' + str(i) + '_' + time.upper() + '.txt' with open(filename, 'w') as outfile: json.dump(data, outfile) else: os.mkdir('pse_data/'+ time.upper() +'/'+ datetoday) filename = 'pse_data/'+ time.upper() +'/'+ datetoday + '/' + str(i) + '_' + time.upper() + '.txt' with open(filename, 'w') as outfile: json.dump(data, outfile) return data
def save_data(filename, i, data): file_list = glob.glob('pse_data/new_data/*.json') j=0 ticker_list = [] for j in range(len(file_list)-1): ticker_list.append(file_list[j][18:-7]) #get ticker name only j=+1 ticker_list = list(set(ticker_list)) #remove duplicate if time.upper() == 'D': with open(filename[:-6]+datetoday+'.json', 'w') as outfile: json.dump(data, outfile) print 'created %s_%s.json' %(i, datetoday) else: #i not in ticker_list, then save as with open(filename, 'w') as outfile: json.dump(data, outfile) print 'created %s.json' %i #print 'Obtained data of (%d) companies:\n %s' %(len(ticker_list),ticker_list) return data
os.mkdir('pse_data/'+ time.upper() +'/'+ datetoday) filename = 'pse_data/'+ time.upper() +'/'+ datetoday + '/' + str(i) + '_' + time.upper() + '.txt' with open(filename, 'w') as outfile: json.dump(data, outfile) return data #list of symbols/tickers of companies registered in PSE symlist = ['I','LOTO','FGEN','MFIN','NOW','SRDC','PERC','FOOD','COL','MPI','AP','NRCP','YEHEY','VLL','PNX','PIP','ALHI','SPH','ORE','EIBB','RWM','ANI','HOUSE','H2O','ALT','NIKL','ROCK','CPM','IMI','EG','MWIDE','DMW','PXP','PGOLD','TECH','EMP','GTCAP','DNL','CAL','COAL','PBB','DMPL','TUGS','AGF','DWC','TFHI','RRHI','CIC','DD','CNPF','TAPET','SSI','PSPC','PGI','X','CROWN','SBS','DATEM','MRSGI','IDC','MER','TEL','EEI','FPH','COSCO','PNB','ICT','HI','PX','KEP','KPH','KPHB','POPI','RLT','MACAY','ANS','ABA','AR','ABS','ACE','MARC','ABG','APO','APX','AT','LR','AB','AC','ALI','PHN','PAL','BPI','BSC','BEL','BC','BCB','BMM','CPV','CPVB','RCI','BCOR','CAT','CEU','CIP','CHIB','CA','CAB','BH','DIZ','ECP','FEU','PAX','FDC','FLI','FYN','FYNB','CYBR','GLO','GPH','IMP','IMPB','MAC','ARA','MCP','IRC','IS','ISM','ATN','ATNB','STI','JGS','JFC','ZHI','GEO','PORT','LC','LFM','PHC','LIHC','MHC','LCB','MBC','MB','MJC','MA','MAB','LTG','SGP','DAVIN','MAH','MAHB','MCB','PMPC','MBT','MED','CPG','OM','OPM','OPMB','JAS','PA','MJIC','V','PCP','IPO','TFC','PBC','PHES','OV','PRC','PTT','PTC','STR','PRIM','PPC','MG','PF','SUN','LRI','REG','WIN','RFM','RCB','RLC','MGH','SMC','SPM','SHNG','WEB','STN','NI','GO','GOB','ACR','TA','FJP','FJPB','UBP','UPM','SGI','EIBA','VUL','SLI','LPZ','SOC','VMC','PCOR','UNI','URC','MEG','SMPH','VVT','PSB','LIB','APC','CEI','CDC','CHI','SFI','AEV','FAF','FNI','SCC','BKR','FPI','VITA','WPI','2GO','GSMI','MRC','PNC','SECB','ION','PLC','LMG','BRN','ELI','LSC','PMT','ATI','DMC','GERI','AAA','HLCM','EVER','UW','ALCO','GREEN','NXGEN','ROX','MVC','BHI','PHA','SLF','BLFI','SM','EDC','SEVN','IPM','EURO','LAND','AUB','AGI','GMA7','MWC','EW','MFC','PSE','BLOOM','BDO','DFNN','CEB','MAXS','CSB','PRMX','T','TBGI','LBC','JOH','SPC'] #symlist = ['VITA','MBT','FGEN','BDO','SMPH'] datetoday = str(dt.today()) datetoday = datetoday[:10] time = raw_input('Print history format: yearly (Y), monthly (M), daily (D)\n') response = raw_input('Show plots? Yes (y) or No (n) \n') if time.upper() == 'Y': print 'Obtaining yearly data' xfmt = mdates.DateFormatter('%m-%d-%Y') elif time.upper() == 'M': print 'Obtaining monthly data' xfmt = mdates.DateFormatter('%m-%d-%Y %H:%M:%S') elif time.upper() == 'D': print 'Obtaining daily data' xfmt = mdates.DateFormatter('%m-%d-%Y %H:%M:%S') else: print 'Unknown input. Please run again.' unixdate_array = [] date_array = [] price_array = [] date_price_array = []
with open(filename, 'w') as outfile: json.dump(data, outfile) print 'created %s.json' %i #print 'Obtained data of (%d) companies:\n %s' %(len(ticker_list),ticker_list) return data #list of symbols/tickers of companies registered in PSE #symlist = ['I','LOTO','FGEN','MFIN','NOW','SRDC','PERC','FOOD','COL','MPI','AP','NRCP','YEHEY','VLL','PNX','PIP','ALHI','SPH','ORE','EIBB','RWM','ANI','HOUSE','H2O','ALT','NIKL','ROCK','CPM','IMI','EG','MWIDE','DMW','PXP','PGOLD','TECH','EMP','GTCAP','DNL','CAL','COAL','PBB','DMPL','TUGS','AGF','DWC','TFHI','RRHI','CIC','DD','CNPF','TAPET','SSI','PSPC','PGI','X','CROWN','SBS','DATEM','MRSGI','IDC','MER','TEL','EEI','FPH','COSCO','PNB','ICT','HI','PX','KEP','KPH','KPHB','POPI','RLT','MACAY','ANS','ABA','AR','ABS','ACE','MARC','ABG','APO','APX','AT','LR','AB','AC','ALI','PHN','PAL','BPI','BSC','BEL','BC','BCB','BMM','CPV','CPVB','RCI','BCOR','CAT','CEU','CIP','CHIB','CA','CAB','BH','DIZ','ECP','FEU','PAX','FDC','FLI','FYN','FYNB','CYBR','GLO','GPH','IMP','IMPB','MAC','ARA','MCP','IRC','IS','ISM','ATN','ATNB','STI','JGS','JFC','ZHI','GEO','PORT','LC','LFM','PHC','LIHC','MHC','LCB','MBC','MB','MJC','MA','MAB','LTG','SGP','DAVIN','MAH','MAHB','MCB','PMPC','MBT','MED','CPG','OM','OPM','OPMB','JAS','PA','MJIC','V','PCP','IPO','TFC','PBC','PHES','OV','PRC','PTT','PTC','STR','PRIM','PPC','MG','PF','SUN','LRI','REG','WIN','RFM','RCB','RLC','MGH','SMC','SPM','SHNG','WEB','STN','NI','GO','GOB','ACR','TA','FJP','FJPB','UBP','UPM','SGI','EIBA','VUL','SLI','LPZ','SOC','VMC','PCOR','UNI','URC','MEG','SMPH','VVT','PSB','LIB','APC','CEI','CDC','CHI','SFI','AEV','FAF','FNI','SCC','BKR','FPI','VITA','WPI','2GO','GSMI','MRC','PNC','SECB','ION','PLC','LMG','BRN','ELI','LSC','PMT','ATI','DMC','GERI','AAA','HLCM','EVER','UW','ALCO','GREEN','NXGEN','ROX','MVC','BHI','PHA','SLF','BLFI','SM','EDC','SEVN','IPM','EURO','LAND','AUB','AGI','GMA7','MWC','EW','MFC','PSE','BLOOM','BDO','DFNN','CEB','MAXS','CSB','PRMX','T','TBGI','LBC','JOH','SPC'] symlist = ['VITA','MBT','FGEN','BDO','SMPH'] time = raw_input('Print history format: yearly (Y), monthly (M), daily (D)\n') response = raw_input('Show plots? Yes (y) or No (n) \n') if time.upper() == 'Y': print 'Obtaining yearly data' xfmt = mdates.DateFormatter('%m-%d-%Y') elif time.upper() == 'M': print 'Obtaining monthly data' xfmt = mdates.DateFormatter('%m-%d-%Y %H:%M:%S') elif time.upper() == 'D': print 'Obtaining daily data' xfmt = mdates.DateFormatter('%m-%d-%Y %H:%M:%S') else: print 'Unknown input. Please run again.' unixdate_array = [] date_array = [] price_array = [] date_price_array = []