def perform(self): #第一次请求取得cookie url = self.prepare_url self.curl.setopt(pycurl.URL, url) self.curl.perform() self.call_back() args = { 'size': '1', 'category': 'SH', 'orderby': 'symbol', 'order': 'desc', } request_attrs = XueqiuStock.attr_list() for attr in request_attrs: args[attr] = 'ALL' #先请求二次取得总数 url = self.base_url + '/screen.json?%s' % (urllib.urlencode(args)) self.curl.setopt(pycurl.URL, url) self.curl.setopt(pycurl.WRITEFUNCTION, self.buf_1.write) #设置回调 self.curl.perform() response = self.buf_1.getvalue() self.all_result = json.loads(response) args['size'] = self.all_result['count'] self.call_back() #再请求第三次取得所有数据 url = self.base_url + '/screen.json?%s' % (urllib.urlencode(args)) self.curl.setopt(pycurl.URL, url) self.curl.setopt(pycurl.WRITEFUNCTION, self.buf_2.write) #设置回调 self.curl.perform() response = self.buf_2.getvalue() self.all_result = json.loads(response) self.call_back()
def perform(self): #第一次请求取得cookie url = self.prepare_url self.curl.setopt(pycurl.URL, url) self.curl.perform() self.call_back() args = { 'size':'1', 'category':'SH', 'orderby':'symbol', 'order':'desc', } request_attrs = XueqiuStock.attr_list() for attr in request_attrs: args[attr] = 'ALL' #先请求二次取得总数 url = self.base_url+'/screen.json?%s'%(urllib.urlencode(args)) self.curl.setopt(pycurl.URL, url) self.curl.setopt(pycurl.WRITEFUNCTION, self.buf_1.write)#设置回调 self.curl.perform() response = self.buf_1.getvalue() self.all_result = json.loads(response) args['size'] = self.all_result['count'] self.call_back() #再请求第三次取得所有数据 url = self.base_url+'/screen.json?%s'%(urllib.urlencode(args)) self.curl.setopt(pycurl.URL, url) self.curl.setopt(pycurl.WRITEFUNCTION, self.buf_2.write)#设置回调 self.curl.perform() response = self.buf_2.getvalue() self.all_result = json.loads(response) self.call_back()
def test_XueqiuStock(self): test_data = { 'ticker':'23333', 'title':'ABCD', 'change':0.123, 'price':1.234, 'pe':2.345, 'peg':3.456, 'pbv':4.567, 'capital':5.678, } st = XueqiuStock(**test_data) for key in test_data: self.assertEqual(test_data[key],st[key]) self.assertEqual('double',st.get_type_by_key(key)) ret = XueqiuStock.attr_list() self.assertEqual([ "pct1m", "pelyr", "chgpct", "tr1m", "tr20", "pb" , "chgpct1m", "pct20", "tr", "pct", "current", "pettm", "chgpct20", "tr5", "fmc", "chgpct5", "tr10", "evps", "volavg30", "volume", "pct10", "dy", "mc", "amount", "pct5", "chgpct10"], ret)
def test_XueqiuStock(self): test_data = { 'ticker': '23333', 'title': 'ABCD', 'change': 0.123, 'price': 1.234, 'pe': 2.345, 'peg': 3.456, 'pbv': 4.567, 'capital': 5.678, } st = XueqiuStock(**test_data) for key in test_data: self.assertEqual(test_data[key], st[key]) self.assertEqual('double', st.get_type_by_key(key)) ret = XueqiuStock.attr_list() self.assertEqual([ "pct1m", "pelyr", "chgpct", "tr1m", "tr20", "pb", "chgpct1m", "pct20", "tr", "pct", "current", "pettm", "chgpct20", "tr5", "fmc", "chgpct5", "tr10", "evps", "volavg30", "volume", "pct10", "dy", "mc", "amount", "pct5", "chgpct10" ], ret)