找工作,找工作....不顺啊。停吧实现自己的一个小idea先,被比打击了,一个主城问到我slua和tolua,ulua的区别哪个比较好,优化性能上哪个比较好,好在哪里,打包有多大?我蒙圈了想想还真没真研究过,貌似自己也就把这些东西当做一个插件来用,就算是coco又或者unity一直都只是工具,没有很好的去研究底层的东西,悲剧了,只能根据自己的感觉说tolua好咯,必须的因为自己也在使用,性能嘛就说快(因为之前看了一些对比数据但是自己没真实践过有点心虚),打包多大android自己实践过20多M左右,但是ios就没试过。最后问性能优化这块,貌似答得也不太好。只能说自己对新技术的攻克能力学习能力解决问题能力还是挺强,这个倒是有信心,不知道一到和人聊起来就不行,原因啊原因啊。
最近有个Idea,就是用tolua实现以个股市爬虫软件这样也算是有一个小小突破,发现市场上的一些股票软件没有热跟新,自己也搞搞试试看,反正有时间。做起来就没那么容易了。首先第一步你需要的是股市信息,这个一般开发股市软件的公司都有数据接口,我这小白哪里,呵呵,办法有的就是网络爬虫,通过在网上的留言查看搜索决定使用新浪的股票数据,原因就是比较稳定。第二就是解析,和忍耐,开发肯定会遇到新奇问题,因为之前没做过,也没试过。
经过一天的搜索数据,一天的框架搭建(之前的框架简约版),两天时间的解析和努力难点包括html的解析扥。。。。终于把第一个接口给搞好了把它所有接口都封装成sdk的形式。
龙虎榜信息接口面市。小小总结下用到的技术点,tolua:携程, http, cjson
上代码(只是开发阶段代码不做整理),这里只打印出一个股票的信息datatable[1]验证成功。
local json = require 'cjson'
local billboard = class("billboard")
local allURL = nil --完整的请求URL
local a = nil --携程
local callBack = nil --携程回调
local call = nil --外部的回调
function billboard:ctor() end
function billboard:records( )
if a ~= nil then StopCoroutine(a) end
a = nil
allURL = nil
call = nil
end
--启动携程
function billboard:SCoroutine(url,_callBack,_call)
self:records()
allURL = url
callBack = _callBack
call = _call
a = StartCoroutine(self.iBCoroutine)
end
--携程回调
function billboard:iBCoroutine()
print("URL------------ : "..allURL)
local www = UnityEngine.WWW(allURL)
Yield(www)
if www.error ~= nil then
self:ERROR(www.error)
return
else
if www.text == "None" then
self:ERROR("None")
return
end
callBack(www.text)
end
end
--错误处理
function billboard:ERROR(error)
print("ERROR : "..error)
end
--[[
获取每日龙虎榜列表
date:string 明细数据日期 format:YYYY-MM-DD 如果为空,返回最近一个交易日的数据
code:代码
name :名称
pchange:涨跌幅
amount:龙虎榜成交额(万)
buy:买入额(万)
bratio:占总成交比例
sell:卖出额(万)
sratio :占总成交比例
reason:上榜原因
return nil table
]]
function billboard:to_list(_call,data)
--默认空请求最近一天(不包括假期:国庆,春节等)
if data == nil then
data = Get_data_withOut_holiday()
end
local URLformat ="%sdata.%s/DataCenter_V3/stock2016/TradeDetail/pagesize=200,page=1,sortRule=-1,sortType=,startDate=%s,endDate=%s,gpfw=0,js=vardata_tab_1.html"
local tempURL = string.format(URLformat,P_TYPE.http,DOMAINS.em,data,data)
--启动携程www请求http数据
print(tempURL)
self:SCoroutine(tempURL,handler(self,self.GetNetData),_call)
end
function billboard:GetNetData(tex)
local res = tex
res = string.split(res, "_1=")
local jsonTxt = res[2]
jsonTxt = string.gsub(jsonTxt,"{pages:1,data:","{\"pages\":1,\"data\":")
jsonTxt = string.gsub(jsonTxt,"'url':","\"url\":")
jsonTxt = string.gsub(jsonTxt,"'http://","\"http://")
jsonTxt = string.gsub(jsonTxt,"lhbggdrtj'","lhbggdrtj\"")
local data = json.decode(jsonTxt)
if data == nil then
call()
return nil
else
local datatable = data["data"]
print(#datatable)
--LHB_TMP_COLS = ['SCode', 'SName', 'Chgradio', 'ZeMoney', 'Bmoney', 'Smoney', 'Ctypedes', 'Turnover']
print("code : "..datatable[1]["SCode"])
print("name : "..datatable[1]["SName"])
print("pchange : "..datatable[1]["Chgradio"])
print("amount : "..datatable[1]["ZeMoney"])
print("buy : "..datatable[1]["Bmoney"])
print("sell : "..datatable[1]["Smoney"])
print("reason : "..datatable[1]["Ctypedes"])
print("bratio : "..datatable[1]["Bmoney"]/datatable[1]["Turnover"])
print("sratio : "..datatable[1]["Smoney"]/datatable[1]["Turnover"])
print("------------------------------")
call(datatable)
end
end
return billboard
看时间已经很晚很晚都早上了,做自己喜欢的东西时间真快,这是“加班”通宵节奏吗