def lowest_today(): # time_stamp = str(int(time.time()*1000 - 999999)) # today lowest url = "http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb04]&p=1&jn=LDGsJsMh&" \ "ps=40&s=hqzb04&st=-1&r=" # 3 days lowest url3 = 'http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb05(1|3)]&p=1&jn=' \ 'lFnifSXE&ps=40&s=hqzb05(1|3)&st=-1&r=1437009363662' # 5days lowest url5 = 'http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb05(1|5)]&p=1&jn=' \ 'FbpVPbpk&ps=40&s=hqzb05(1|5)&st=-1&r=1437009283929' resp, content = http_request.request(url, "GET") result = json.loads(content[13:]).get("Results") date = datetime.date.today() code_name = [] codes = [] for i in result: i = i.encode("utf-8").split(",") # if "N" or "退" in i[2]: # continue line = i[1] + " " + i[2] + "\n" codes.append(i[1]) code_name.append(line) if not code_name: return False codes.sort(key=lambda code: int(code))
def lowest_today(): # time_stamp = str(int(time.time()*1000 - 999999)) # today lowest url = ( "http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb04]&p=1&jn=LDGsJsMh&" "ps=40&s=hqzb04&st=-1&r=" ) # 3 days lowest url3 = ( "http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb05(1|3)]&p=1&jn=" "lFnifSXE&ps=40&s=hqzb05(1|3)&st=-1&r=1437009363662" ) # 5days lowest url5 = ( "http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb05(1|5)]&p=1&jn=" "FbpVPbpk&ps=40&s=hqzb05(1|5)&st=-1&r=1437009283929" ) resp, content = http_request.request(url, "GET") result = json.loads(content[13:]).get("Results") date = datetime.date.today() code_name = [] codes = [] for i in result: i = i.encode("utf-8").split(",") # if "N" or "退" in i[2]: # continue line = i[1] + " " + i[2] + "\n" codes.append(i[1]) code_name.append(line) if not code_name: return False codes.sort(key=lambda code: int(code))
def sgcx_tencent(): url = ['http://smartstock.gtimg.cn/get.php?_func=zhibiao&_default=1&_page=1&_pagesize=30&zhibiao=hs_sgcx', \ 'http://smartstock.gtimg.cn/get.php?_func=zhibiao&_default=1&_page=1&_pagesize=30&zhibiao=hs_cjdx'] for i in url: resp, content = http_request.request(i, "GET") content = content[16:] json_content = json.loads(content) data = json_content.get('data') for i in data: sgcx_code.append(i['code'][2:]) print 'sgcx from tencent lenth:', len(sgcx_code)
def rise_east(): url = 'http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb11(1|5)]&p=1&jn' \ '=AzvrOrMg&ps=40&s=hqzb11(1|5)&st=-1&r=1438007615018' url = 'http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb11(1|5)]&p=1&jn=IkyIDTEU&ps=4000&s=hqzb11(1|5)&st=-1&r=1438828990543' resp, content = http_request.request(url, "GET") json_content = json.loads(content[13:]).get("Results") for i in json_content: detail = i.split(',') code = detail[1] fluctuation = detail[3] drop[code] = fluctuation print 'rise 3 days:', len(drop)
def stock_size_sina(): url = "http://money.finance.sina.com.cn/quotes_service/api/jsonp_v2.php/IO.XSRV2.CallbackList['b4VIm$HArIJ1qfKO']/Market_Center.getHQNodeDataNew?page=1&num=5000&sort=nmc&asc=0&node=hs_a" resp, content = http_request.request(url, "GET") content = content[42:-1] content = re.sub(r":(\w+?):", r"f**k", content) content = re.sub(r"(,?)(\w+?)\s*?:", r"\1'\2' :", content) content = content.replace("'", '"') json_content = json.loads(content) for i in json_content: code = i["code"] nmc = int(float(i["nmc"]) / 10000.0) stock_size[code] = nmc print "sina stock size: ", len(stock_size)
def bull_sina(): url = "http://vip.stock.finance.sina.com.cn/q/go.php/vIR_Burstout/index.phtml" resp, content = http_request.request(url, "GET") start = content.find("var STR_HX_CODE = ") + 18 end = content.find("\n", start) - 1 content = content[start:end] try: codes = json.loads(content) except Exception as e: print "get bull codes error" global bull_code bull_code = [i[2:] for i in codes if not i[2:].startswith("3")] print "bull codes:", len(bull_code)
def turn_over_sina(): url = 'http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData?page=1' \ '&num=4000&sort=turnoverratio&asc=0&node=hs_a&symbol=&_s_r_a=init' resp, content = http_request.request(url, "GET") content = re.sub(r":(\w+?):", r"f**k", content) content = re.sub(r"(,?)(\w+?)\s*?:", r"\1'\2' :", content) content = content.replace("'", "\"") json_content = json.loads(content) for i in json_content: code = i['code'] ratio = int(i['turnoverratio']) turn_over_ratio[code] = ratio print 'sina turn over ratio: ', len(turn_over_ratio)
def bull_sina(): url = 'http://vip.stock.finance.sina.com.cn/q/go.php/vIR_Burstout/index.phtml' resp, content = http_request.request(url, 'GET') start = content.find('var STR_HX_CODE = ') + 18 end = content.find('\n', start) - 1 content = content[start:end] try: codes = json.loads(content) except Exception as e: print 'get bull codes error' global bull_code bull_code = [i[2:] for i in codes if not i[2:].startswith('3')] print 'bull codes:', len(bull_code)
def stock_size_sina(): url = "http://money.finance.sina.com.cn/quotes_service/api/jsonp_v2.php/IO.XSRV2.CallbackList['b4VIm$HArIJ1qfKO']/Market_Center.getHQNodeDataNew?page=1&num=5000&sort=nmc&asc=0&node=hs_a" resp, content = http_request.request(url, "GET") content = content[42:-1] content = re.sub(r":(\w+?):", r"f**k", content) content = re.sub(r"(,?)(\w+?)\s*?:", r"\1'\2' :", content) content = content.replace("'", "\"") json_content = json.loads(content) for i in json_content: code = i['code'] nmc = int(float(i['nmc']) / 10000.0) stock_size[code] = nmc print 'sina stock size: ', len(stock_size)
def sgcx_tencent(): url = [ "http://smartstock.gtimg.cn/get.php?_func=zhibiao&_default=1&_page=1&_pagesize=30&zhibiao=hs_sgcx", "http://smartstock.gtimg.cn/get.php?_func=zhibiao&_default=1&_page=1&_pagesize=30&zhibiao=hs_cjdx", ] for i in url: resp, content = http_request.request(i, "GET") content = content[16:] json_content = json.loads(content) data = json_content.get("data") for i in data: sgcx_code.append(i["code"][2:]) print "sgcx from tencent lenth:", len(sgcx_code)
def week_change_163(): url = "http://quotes.money.163.com/hs/realtimedata/service/rank.php?host=/hs/realtimedata/service/rank.php&page=0&query=LONG_PERIOD_RANK:_exists_&fields=SYMBOL,PRICE,LONG_PERIOD_RANK,PERCENT&sort=LONG_PERIOD_RANK.WEEK_PERCENT&order=asc&count=4000&type=query" resp, content = http_request.request(url, "GET") json_content = json.loads(content) stock_list = json_content.get("list") for i in stock_list: code = i["SYMBOL"] long_change = i["LONG_PERIOD_RANK"] we_change = int(long_change.get("WEEK_PERCENT", 10000) * 100) mon_change = int(long_change.get("MONTH_PERCENT", 10000) * 100) qua_change = int(long_change.get("QUARTER_PERCENT", 10000) * 100) week_change[code] = we_change month_change[code] = mon_change quarter_change[code] = qua_change
def rise_east(): url = ( "http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb11(1|5)]&p=1&jn" "=AzvrOrMg&ps=40&s=hqzb11(1|5)&st=-1&r=1438007615018" ) url = "http://xuanguapi.eastmoney.com/Stock/JS.aspx?type=xgq&sty=xgq&token=eastmoney&c=[hqzb11(1|5)]&p=1&jn=IkyIDTEU&ps=4000&s=hqzb11(1|5)&st=-1&r=1438828990543" resp, content = http_request.request(url, "GET") json_content = json.loads(content[13:]).get("Results") for i in json_content: detail = i.split(",") code = detail[1] fluctuation = detail[3] drop[code] = fluctuation print "rise 3 days:", len(drop)
def week_change_163(): url = 'http://quotes.money.163.com/hs/realtimedata/service/rank.php?host=/hs/realtimedata/service/rank.php&page=0&query=LONG_PERIOD_RANK:_exists_&fields=SYMBOL,PRICE,LONG_PERIOD_RANK,PERCENT&sort=LONG_PERIOD_RANK.WEEK_PERCENT&order=asc&count=4000&type=query' resp, content = http_request.request(url, "GET") json_content = json.loads(content) stock_list = json_content.get('list') for i in stock_list: code = i['SYMBOL'] long_change = i['LONG_PERIOD_RANK'] we_change = int(long_change.get('WEEK_PERCENT', 10000) * 100) mon_change = int(long_change.get('MONTH_PERCENT', 10000) * 100) qua_change = int(long_change.get('QUARTER_PERCENT', 10000) * 100) week_change[code] = we_change month_change[code] = mon_change quarter_change[code] = qua_change
def turn_over_sina(): url = ( "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData?page=1" "&num=4000&sort=turnoverratio&asc=0&node=hs_a&symbol=&_s_r_a=init" ) resp, content = http_request.request(url, "GET") content = re.sub(r":(\w+?):", r"f**k", content) content = re.sub(r"(,?)(\w+?)\s*?:", r"\1'\2' :", content) content = content.replace("'", '"') json_content = json.loads(content) for i in json_content: code = i["code"] ratio = int(i["turnoverratio"]) turn_over_ratio[code] = ratio print "sina turn over ratio: ", len(turn_over_ratio)
def short_sina(): global b_point_code urls = ["http://vip.stock.finance.sina.com.cn/q/go.php/vDYData/kind/dxcj/index.phtml?p="] # 'http://vip.stock.finance.sina.com.cn/q/go.php/vDYData/kind/kdfp/index.phtml?p=', \ # 'http://vip.stock.finance.sina.com.cn/q/go.php/vDYData/kind/dpjc/index.phtml?p='] for url in urls: for i in range(1, 100): page_url = url + str(i) resp, content = http_request.request(page_url, "GET") if "php?q=" not in content: break code_str = content.split("php?q=") for i in code_str[1::2]: short_code.append(i[:6]) print "short line sina:", len(short_code)
def b_point_sina(): global b_point_code urls = ['http://vip.stock.finance.sina.com.cn/q/go.php/vDYData/kind/bdmr/index.phtml?p=', \ 'http://vip.stock.finance.sina.com.cn/q/go.php/vDYData/kind/dxcj/index.phtml?p=', \ 'http://vip.stock.finance.sina.com.cn/q/go.php/vDYData/kind/kdfp/index.phtml?p=', \ 'http://vip.stock.finance.sina.com.cn/q/go.php/vDYData/kind/kpjc/index.phtml?p='] for url in urls: for i in range(1, 100): page_url = url + str(i) resp, content = http_request.request(page_url, 'GET') if 'php?q=' not in content: break code_str = content.split('php?q=') for i in code_str[1::2]: b_point_code.append(i[:6]) print 'b point sina:', len(b_point_code)
def runAndSave(serverIds=None, interIds=None): """ 执行接口测试,并保存执行结果 @param serverIds:服务器id @param interIds:接口id """ log.debug("==============开始执行测试脚本==============") total = success = fail = 0 try: (servers, inters) = listServersAndInters(serverIds, interIds) for inter in inters: for server in servers: total += 1 url = 'http://%s/%s%s' % (server.name, inter.service, inter.path) method = inter.method enc = inter.enc input = inter.input output = inter.output begin = time.time() response = http_request.request(url=url, method=method, body=input) res = False if compare_util.loosecmp(output, response): log.debug("验证成功") success += 1 res = True else: log.warn("验证失败") fail += 1 res = False end = time.time() result = models.Result(server=server, inter=inter, req=input, resp=response, result=res, spend=(int)((end - begin) * 1000)) result.save() log.debug("已将%s保存到数据库" % result) log.debug("==============测试脚本执行结束==============") log.info("本次共测试:%d个接口,成功:%d,失败:%d" % (total, success, fail)) return (total, success, fail) except Exception as e: log.error("程序遇到异常=>" + traceback.format_exc())
def lowest_163(): url = 'http://quotes.money.163.com/hs/realtimedata/service/marketIndexes.php?host=/hs/realtimedata/service/' \ 'marketIndexes.php&page=0&query=HIGH_LOW_RECENTLY.HIGH_LOW:int_-1&fields=RN,SYMBOL,CODE,NAME,TYPE,PRICE,' \ 'HIGH_LOW_RECENTLY,PERCENT&sort=PRICE&order=ASC&count=9999&type=query&callback=callback_9967058&req=51111' url2 ='http://quotes.money.163.com/hs/realtimedata/service/marketIndexes.php?host=/hs/realtimedata/service/' \ 'marketIndexes.php&page=1&query=HIGH_LOW_RECENTLY.HIGH_LOW:int_-1&fields=RN,SYMBOL,CODE,NAME,TYPE,PRICE,' \ 'HIGH_LOW_RECENTLY,PERCENT&sort=PRICE&order=ASC&count=25&type=query&callback=callback_1993377099&req=5112' resp, content = http_request.request(url, "GET") index = content.index('"list":[') + 7 json_content = json.loads(content[index:-3]) codes = [] for i in json_content: code = i['SYMBOL'] codes.append(code) print len(codes) return codes
def in_flow_sina(): url = 'http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/MoneyFlow.ssl_bkzj_ssggzj?page=1&num=4000&sort=r0_ratio&asc=0' resp, content = http_request.request(url, "GET") content = re.sub(r"(,?)(\w+?)\s*?:", r"\1'\2' :", content) content = content.replace("'", "\"") json_content = json.loads(content) for i in json_content: code = i['symbol'][2:] inflow = int(float(i['r0_ratio']) * 100.0) turn_over = int(float(i['turnover'])) / 100.0 change = int(float(i['changeratio']) * 1000) / 10.0 price = int(float(i['trade']) * 100) / 100.0 in_flow_ratio[code] = inflow turn_over_ratio[code] = turn_over change_ratio[code] = change price_now[code] = price print 'sina turn over ratio: ', len(turn_over_ratio) print 'sina in flow ratio: ', len(in_flow_ratio)
def in_flow_sina(): url = "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/MoneyFlow.ssl_bkzj_ssggzj?page=1&num=4000&sort=r0_ratio&asc=0" resp, content = http_request.request(url, "GET") content = re.sub(r"(,?)(\w+?)\s*?:", r"\1'\2' :", content) content = content.replace("'", '"') json_content = json.loads(content) for i in json_content: code = i["symbol"][2:] inflow = int(float(i["r0_ratio"]) * 100.0) turn_over = int(float(i["turnover"])) / 100.0 change = int(float(i["changeratio"]) * 1000) / 10.0 price = int(float(i["trade"]) * 100) / 100.0 in_flow_ratio[code] = inflow turn_over_ratio[code] = turn_over change_ratio[code] = change price_now[code] = price print "sina turn over ratio: ", len(turn_over_ratio) print "sina in flow ratio: ", len(in_flow_ratio)
def lowest_163(): url = ( "http://quotes.money.163.com/hs/realtimedata/service/marketIndexes.php?host=/hs/realtimedata/service/" "marketIndexes.php&page=0&query=HIGH_LOW_RECENTLY.HIGH_LOW:int_-1&fields=RN,SYMBOL,CODE,NAME,TYPE,PRICE," "HIGH_LOW_RECENTLY,PERCENT&sort=PRICE&order=ASC&count=9999&type=query&callback=callback_9967058&req=51111" ) url2 = ( "http://quotes.money.163.com/hs/realtimedata/service/marketIndexes.php?host=/hs/realtimedata/service/" "marketIndexes.php&page=1&query=HIGH_LOW_RECENTLY.HIGH_LOW:int_-1&fields=RN,SYMBOL,CODE,NAME,TYPE,PRICE," "HIGH_LOW_RECENTLY,PERCENT&sort=PRICE&order=ASC&count=25&type=query&callback=callback_1993377099&req=5112" ) resp, content = http_request.request(url, "GET") index = content.index('"list":[') + 7 json_content = json.loads(content[index:-3]) codes = [] for i in json_content: code = i["SYMBOL"] codes.append(code) print len(codes) return codes
def quantity_relative_ratio_163(): url ='http://quotes.money.163.com/hs/service/diyrank.php?host=http%3A%2F%2Fquotes.money.163.com%2Fhs%2Fservice%2' \ 'Fdiyrank.php&page=0&query=STYPE%3AEQA&fields=SYMBOL%2CLB&sort=LB&order=desc&count=4000&type=query' smal_url = 'http://quotes.money.163.com/hs/service/diyrank.php?host=http%3A%2F%2Fquotes.money.163.com%2Fhs%2Fservice%2' \ 'Fdiyrank.php&page=0&query=SCSTC27_RNG%3AS&fields=NO%2CSYMBOL%2CNAME%2CPRICE%2CPERCENT%2CUPDOWN%2CFIVE_MINUTE%2' \ 'COPEN%2CYESTCLOSE%2CHIGH%2CLOW%2CVOLUME%2CTURNOVER%2CHS%2CLB%2CWB%2CZF%2CPE%2CMCAP%2CTCAP%2CMFSUM%2CMFRATIO' \ '.MFRATIO2%2CMFRATIO.MFRATIO10%2CSNAME%2CCODE%2CANNOUNMT%2CUVSNEWS&sort=LB&order=desc&count=4000&type=query' url = 'http://quotes.money.163.com/hs/service/diyrank.php?host=http%3A%2F%2Fquotes.money.163.com%2Fhs%2Fservice%2Fdiyrank.php&page=0&query=STYPE%3AEQA&fields=NO%2CSYMBOL%2CNAME%2CPRICE%2CPERCENT%2CUPDOWN%2CFIVE_MINUTE%2COPEN%2CYESTCLOSE%2CHIGH%2CLOW%2CVOLUME%2CTURNOVER%2CHS%2CLB%2CWB%2CZF%2CPE%2CMCAP%2CTCAP%2CMFSUM%2CMFRATIO.MFRATIO2%2CMFRATIO.MFRATIO10%2CSNAME%2CCODE%2CANNOUNMT%2CUVSNEWS&sort=LB&order=asc&count=4000&type=query' resp, content = http_request.request(url, "GET") json_content = json.loads(content) stock_list = json_content.get('list') print json_content.get('time') for i in stock_list: code = i['SYMBOL'] change = i.get('PERCENT') if change: change = int(change * 1000) / 10.0 else: change = 10000 turn_over = i.get('HS') if turn_over: turn_over = int(turn_over * 1000) / 10.0 else: turn_over = 10000 price = i.get('PRICE') if price: price = int(price * 10) / 10.0 else: price = 10000 lb = i.get('LB') if lb: lb = int(lb * 10) / 10.0 else: lb = 10000 pe = i.get('PE') if pe: pe = int(pe) else: pe = 10000 size = i.get('MCAP') if size: size = int(size / 100000000) else: size = 10000 open = i.get('OPEN') if open: open = float(open) else: open = 10000 close = i.get('YESTCLOSE') if close: close = float(close) else: close = 10000 if open != 10000 and close != 10000: open = int((open - close) / close * 100) open_price[code] = open stock_size[code] = size pe_ratio[code] = pe quantity_relative_ratio[code] = lb turn_over_ratio[code] = turn_over change_ratio[code] = change price_now[code] = price print '163 query: ', len(quantity_relative_ratio)
def quantity_relative_ratio_163(): url = ( "http://quotes.money.163.com/hs/service/diyrank.php?host=http%3A%2F%2Fquotes.money.163.com%2Fhs%2Fservice%2" "Fdiyrank.php&page=0&query=STYPE%3AEQA&fields=SYMBOL%2CLB&sort=LB&order=desc&count=4000&type=query" ) smal_url = ( "http://quotes.money.163.com/hs/service/diyrank.php?host=http%3A%2F%2Fquotes.money.163.com%2Fhs%2Fservice%2" "Fdiyrank.php&page=0&query=SCSTC27_RNG%3AS&fields=NO%2CSYMBOL%2CNAME%2CPRICE%2CPERCENT%2CUPDOWN%2CFIVE_MINUTE%2" "COPEN%2CYESTCLOSE%2CHIGH%2CLOW%2CVOLUME%2CTURNOVER%2CHS%2CLB%2CWB%2CZF%2CPE%2CMCAP%2CTCAP%2CMFSUM%2CMFRATIO" ".MFRATIO2%2CMFRATIO.MFRATIO10%2CSNAME%2CCODE%2CANNOUNMT%2CUVSNEWS&sort=LB&order=desc&count=4000&type=query" ) url = "http://quotes.money.163.com/hs/service/diyrank.php?host=http%3A%2F%2Fquotes.money.163.com%2Fhs%2Fservice%2Fdiyrank.php&page=0&query=STYPE%3AEQA&fields=NO%2CSYMBOL%2CNAME%2CPRICE%2CPERCENT%2CUPDOWN%2CFIVE_MINUTE%2COPEN%2CYESTCLOSE%2CHIGH%2CLOW%2CVOLUME%2CTURNOVER%2CHS%2CLB%2CWB%2CZF%2CPE%2CMCAP%2CTCAP%2CMFSUM%2CMFRATIO.MFRATIO2%2CMFRATIO.MFRATIO10%2CSNAME%2CCODE%2CANNOUNMT%2CUVSNEWS&sort=LB&order=asc&count=4000&type=query" resp, content = http_request.request(url, "GET") json_content = json.loads(content) stock_list = json_content.get("list") print json_content.get("time") for i in stock_list: code = i["SYMBOL"] change = i.get("PERCENT") if change: change = int(change * 1000) / 10.0 else: change = 10000 turn_over = i.get("HS") if turn_over: turn_over = int(turn_over * 1000) / 10.0 else: turn_over = 10000 price = i.get("PRICE") if price: price = int(price * 10) / 10.0 else: price = 10000 lb = i.get("LB") if lb: lb = int(lb * 10) / 10.0 else: lb = 10000 pe = i.get("PE") if pe: pe = int(pe) else: pe = 10000 size = i.get("MCAP") if size: size = int(size / 100000000) else: size = 10000 open = i.get("OPEN") if open: open = float(open) else: open = 10000 close = i.get("YESTCLOSE") if close: close = float(close) else: close = 10000 if open != 10000 and close != 10000: open = int((open - close) / close * 100) open_price[code] = open stock_size[code] = size pe_ratio[code] = pe quantity_relative_ratio[code] = lb turn_over_ratio[code] = turn_over change_ratio[code] = change price_now[code] = price print "163 query: ", len(quantity_relative_ratio)
def manager_top(bdlx, days=None): # bcjd=2015-07-13&ecjd=2015-07-14 # cjd:chang day # bdlx:1 buy, 2 sale # bbdje=10&ebdje=100 range 10 thounsand # bzltb: percentage %% # titType: sort keyword,0,1:date 3:amount(10thounsand) 5:money 8:percentage url = "http://stockdata.stock.hexun.com/ggzjc/data/ChangeHistory.aspx?count=30000&callback=" \ "hxbase_json5&stateType=up&titType=5" url += "&bdlx=" + str(bdlx) date = datetime.date.today() start_date = str(date - datetime.timedelta(days=41)) # url += '&bcjd=%s&ecjd=%s'%(start_date,start_date) if days: url += '&cjd=' + str(days) # url += '&bcjd=%s&ecjd=%s'%(start_date,date) elif bdlx == 1: url += '&cjd=90' else: url += '&cjd=5' ret_list = [] codes = [] # for i in range(1, 100): # page = '&page=' + str(i) # new_url = url + page # print new_url url += '&page=1' print url resp, content = http_request.request(url, "GET") content = content.replace('\"', '') content = content.replace('http:', '') content = re.sub(r"<[^<]*>", r"", content) content = re.sub(r"(,?)(\w+?)\s*?:", r"\1'\2' :", content) content = content.replace("'", "\"") result = json.loads(content[13:-1]).get('list') # if not len(result): # break for i in result: # print i['stockName'], i['averagePrice'], i['price'], i['circulationCapitalRatio'] price = float(i['price']) if price > 10 or bdlx == 2: code = str(re.sub(r"[^\(]*\(", r"", i['stockName'])[:-1]) name = i['stockName'].split('(')[0] d = { 'code': code, 'price': price, 'ratio': i['circulationCapitalRatio'], 'name': name } codes.append(code) ret_list.append(d) date = i['changeDate'][-5:] avgprice = float(i['averagePrice']) if bdlx == 1 and (not manager_buy.has_key(code) or manager_buy[code] < avgprice): manager_buy[code] = avgprice if bdlx == 2 and (not manager_sale.has_key(code) or manager_sale[code] > avgprice): manager_sale[code] = avgprice # elif ret_dict[code]['total_price'] < price: # ret_dict[code]['total_price'] = price # ret_dict[code]['date'] = date # ret_dict[code]['avg'] = avgprice print len(codes) return list(set(codes)), manager_buy
def manager_top(bdlx, days=None): # bcjd=2015-07-13&ecjd=2015-07-14 # cjd:chang day # bdlx:1 buy, 2 sale # bbdje=10&ebdje=100 range 10 thounsand # bzltb: percentage %% # titType: sort keyword,0,1:date 3:amount(10thounsand) 5:money 8:percentage url = ( "http://stockdata.stock.hexun.com/ggzjc/data/ChangeHistory.aspx?count=30000&callback=" "hxbase_json5&stateType=up&titType=5" ) url += "&bdlx=" + str(bdlx) date = datetime.date.today() start_date = str(date - datetime.timedelta(days=41)) # url += '&bcjd=%s&ecjd=%s'%(start_date,start_date) if days: url += "&cjd=" + str(days) # url += '&bcjd=%s&ecjd=%s'%(start_date,date) elif bdlx == 1: url += "&cjd=90" else: url += "&cjd=5" ret_list = [] codes = [] # for i in range(1, 100): # page = '&page=' + str(i) # new_url = url + page # print new_url url += "&page=1" print url resp, content = http_request.request(url, "GET") content = content.replace('"', "") content = content.replace("http:", "") content = re.sub(r"<[^<]*>", r"", content) content = re.sub(r"(,?)(\w+?)\s*?:", r"\1'\2' :", content) content = content.replace("'", '"') result = json.loads(content[13:-1]).get("list") # if not len(result): # break for i in result: # print i['stockName'], i['averagePrice'], i['price'], i['circulationCapitalRatio'] price = float(i["price"]) if price > 10 or bdlx == 2: code = str(re.sub(r"[^\(]*\(", r"", i["stockName"])[:-1]) name = i["stockName"].split("(")[0] d = {"code": code, "price": price, "ratio": i["circulationCapitalRatio"], "name": name} codes.append(code) ret_list.append(d) date = i["changeDate"][-5:] avgprice = float(i["averagePrice"]) if bdlx == 1 and (not manager_buy.has_key(code) or manager_buy[code] < avgprice): manager_buy[code] = avgprice if bdlx == 2 and (not manager_sale.has_key(code) or manager_sale[code] > avgprice): manager_sale[code] = avgprice # elif ret_dict[code]['total_price'] < price: # ret_dict[code]['total_price'] = price # ret_dict[code]['date'] = date # ret_dict[code]['avg'] = avgprice print len(codes) return list(set(codes)), manager_buy