天天网络攻击,待会我就把负面的几条到处转发,我好几个站点呢

谁怕谁,SEO一下,到处都可以百度你的负面信息。
谁怕谁,SEO一下,到处都可以百度你的负面信息。

Linux下自制有道词典 - python 解密有道词典JS加密

对于爬虫新手来说,JS解密是一道过不去的坎,需要不断地练习。
平时在linux下开发,鉴于没有什么好用翻译软件,打开网易也占用系统资源,所以写了个在控制台的翻译软件接口。
 
使用python爬虫,查看网页的JS加密方法,一步一步地分析,就能够得到最后的加密方法啦。
 
直接给出代码:
 
# -*- coding: utf-8 -*-
# website: http://30daydo.com
# @Time : 2019/2/23 19:34
# @File : youdao.py
# 解密有道词典的JS


import hashlib
import random
import requests
import time


def md5_(word):
s = bytes(word, encoding='utf8')
m = hashlib.md5()
m.update(s)
ret = m.hexdigest()
return ret

def get_sign(word, salt):
ret = md5_('fanyideskweb' + word + salt + 'p09@Bn{h02_BIEe]$P^nG')
return ret


def youdao(word):
url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
headers = {
'Host': 'fanyi.youdao.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0',
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding': 'gzip, deflate',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With': 'XMLHttpRequest',
'Referer': 'http://fanyi.youdao.com/',
'Content-Length': '252',
'Cookie': 'YOUDAO_MOBILE_ACCESS_TYPE=1; OUTFOX_SEARCH_USER_ID=1672542763@10.169.0.83; JSESSIONID=aaaWzxpjeDu1gbhopLzKw; ___rl__test__cookies=1550913722828; OUTFOX_SEARCH_USER_ID_NCOO=372126049.6326876',
'Connection': 'keep-alive',
'Pragma': 'no-cache',
'Cache-Control': 'no-cache',
}

ts = str(int(time.time()*1000))
salt=ts+str(random.randint(0,10))
bv = md5_("5.0 (Windows)")
sign= get_sign(word,salt)

post_data = {
'i': word,
'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'client': 'fanyideskweb', 'salt': salt,
'sign': sign, 'ts': ts, 'bv': bv, 'doctype': 'json', 'version': '2.1',
'keyfrom': 'fanyi.web', 'action': 'FY_BY_REALTIME', 'typoResult': 'false'
}

r = requests.post(
url=url,
headers=headers,
data=post_data
)

for item in r.json().get('smartResult',{}).get('entries'):
print(item)

word='student'
youdao(word)

得到结果:

youdao.PNG

 
Github:
https://github.com/Rockyzsu/CrawlMan/tree/master/youdao_dictionary
原创文章,转载请注明出处
http://30daydo.com/article/416
继续阅读 »
对于爬虫新手来说,JS解密是一道过不去的坎,需要不断地练习。
平时在linux下开发,鉴于没有什么好用翻译软件,打开网易也占用系统资源,所以写了个在控制台的翻译软件接口。
 
使用python爬虫,查看网页的JS加密方法,一步一步地分析,就能够得到最后的加密方法啦。
 
直接给出代码:
 
# -*- coding: utf-8 -*-
# website: http://30daydo.com
# @Time : 2019/2/23 19:34
# @File : youdao.py
# 解密有道词典的JS


import hashlib
import random
import requests
import time


def md5_(word):
s = bytes(word, encoding='utf8')
m = hashlib.md5()
m.update(s)
ret = m.hexdigest()
return ret

def get_sign(word, salt):
ret = md5_('fanyideskweb' + word + salt + 'p09@Bn{h02_BIEe]$P^nG')
return ret


def youdao(word):
url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
headers = {
'Host': 'fanyi.youdao.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0',
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding': 'gzip, deflate',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With': 'XMLHttpRequest',
'Referer': 'http://fanyi.youdao.com/',
'Content-Length': '252',
'Cookie': 'YOUDAO_MOBILE_ACCESS_TYPE=1; OUTFOX_SEARCH_USER_ID=1672542763@10.169.0.83; JSESSIONID=aaaWzxpjeDu1gbhopLzKw; ___rl__test__cookies=1550913722828; OUTFOX_SEARCH_USER_ID_NCOO=372126049.6326876',
'Connection': 'keep-alive',
'Pragma': 'no-cache',
'Cache-Control': 'no-cache',
}

ts = str(int(time.time()*1000))
salt=ts+str(random.randint(0,10))
bv = md5_("5.0 (Windows)")
sign= get_sign(word,salt)

post_data = {
'i': word,
'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'client': 'fanyideskweb', 'salt': salt,
'sign': sign, 'ts': ts, 'bv': bv, 'doctype': 'json', 'version': '2.1',
'keyfrom': 'fanyi.web', 'action': 'FY_BY_REALTIME', 'typoResult': 'false'
}

r = requests.post(
url=url,
headers=headers,
data=post_data
)

for item in r.json().get('smartResult',{}).get('entries'):
print(item)

word='student'
youdao(word)

得到结果:

youdao.PNG

 
Github:
https://github.com/Rockyzsu/CrawlMan/tree/master/youdao_dictionary
原创文章,转载请注明出处
http://30daydo.com/article/416 收起阅读 »

修改Logstash中的sql_last_value值

修改syncpoint_table里面的值 就可以了。
这个文件在logstash的第一层目录底下。
 
不然每次都是从这个最后的值开始执行的。
修改syncpoint_table里面的值 就可以了。
这个文件在logstash的第一层目录底下。
 
不然每次都是从这个最后的值开始执行的。

防守

0050 没处理好   2个点才走  
又是卖的时候没看大局,被个股分时吸引,从而滋生侥幸心理
 
亏钱效应凸显
先空仓做防守了
一波行情做完最重要的是控制回撤
 
心态要谨慎
严防交易惯性带来的冲动性交易和随意单
 
 
 
 
 
 
 
0050 没处理好   2个点才走  
又是卖的时候没看大局,被个股分时吸引,从而滋生侥幸心理
 
亏钱效应凸显
先空仓做防守了
一波行情做完最重要的是控制回撤
 
心态要谨慎
严防交易惯性带来的冲动性交易和随意单
 
 
 
 
 
 
 

这周完成基础

1.png

不轻易定计划,也不轻易改变计划
 
做事要坚持,切不可三心二意半途而废
 
时间管理上执行力还不够,闹钟响起就应该立马去做
 
在自律和随心上徘徊过好久
最终方知,自律方自由
 
 
-----------------------------2019.2.24  19:01------------------------------------------

1.png


意外事件耽误3天
周六日两天补上进度
还是按计划每天进行点轻松
浪费了杭州难得的艳阳天
最后两节 Jupyter   跳了 
 

 
继续阅读 »
1.png

不轻易定计划,也不轻易改变计划
 
做事要坚持,切不可三心二意半途而废
 
时间管理上执行力还不够,闹钟响起就应该立马去做
 
在自律和随心上徘徊过好久
最终方知,自律方自由
 
 
-----------------------------2019.2.24  19:01------------------------------------------

1.png


意外事件耽误3天
周六日两天补上进度
还是按计划每天进行点轻松
浪费了杭州难得的艳阳天
最后两节 Jupyter   跳了 
 

  收起阅读 »

《pythno金融实战》 读后感与勘误

这本书有过多的错误,所以读起来有点不爽。
 
对于没有一定金融知识的程序员来说,也许是一本天书,专有名词特别多,而书中也没做详细的解释。
 
主要是书中代码注释太少,看起来很吃力。
 
不推荐。
 
勘误:
P165
最后一行应该是卖出IBM的股票
 
P181
公式 8-27 应该为 y=3+2x**2 (错的太离谱)
 
 
PS:这本书不是老外写的,是一个中国人写的,封面上居然写着译本。
继续阅读 »
这本书有过多的错误,所以读起来有点不爽。
 
对于没有一定金融知识的程序员来说,也许是一本天书,专有名词特别多,而书中也没做详细的解释。
 
主要是书中代码注释太少,看起来很吃力。
 
不推荐。
 
勘误:
P165
最后一行应该是卖出IBM的股票
 
P181
公式 8-27 应该为 y=3+2x**2 (错的太离谱)
 
 
PS:这本书不是老外写的,是一个中国人写的,封面上居然写着译本。 收起阅读 »

免费看研报的网站

http://www.767stock.com/page/2
 
https://robo.datayes.com/v2/
 
手里收藏的就这两个
 
欢迎比较分享
http://www.767stock.com/page/2
 
https://robo.datayes.com/v2/
 
手里收藏的就这两个
 
欢迎比较分享

2019-02-15 复盘

仓位保持。 感觉要回调,算我怕死吧。 不要跌回一点点就去抄底。 忍住手,莫伸手。
仓位保持。 感觉要回调,算我怕死吧。 不要跌回一点点就去抄底。 忍住手,莫伸手。

2019-02-14 复盘

我的复盘更加倾向于市场环境和众心态,不太会分析市场板块之类的。
今天个股和指数出现滞涨,最近几天收益不错,仓位也已经降下来了,而且为了管住手,买入了逆回购,下周选择买入更长周期的逆回购。
 
目前仓位4.1成(感觉还是有点多),但是目前点位,买入的个股不会再深套(之前涨到高位个股和次新股不算)。即使套也很容易解套的。
 
个人觉得指数还是会去寻底,A股只要你肯慢慢等待,不会没有机会的。管住手,不亏损。
 
 
 
继续阅读 »
我的复盘更加倾向于市场环境和众心态,不太会分析市场板块之类的。
今天个股和指数出现滞涨,最近几天收益不错,仓位也已经降下来了,而且为了管住手,买入了逆回购,下周选择买入更长周期的逆回购。
 
目前仓位4.1成(感觉还是有点多),但是目前点位,买入的个股不会再深套(之前涨到高位个股和次新股不算)。即使套也很容易解套的。
 
个人觉得指数还是会去寻底,A股只要你肯慢慢等待,不会没有机会的。管住手,不亏损。
 
 
  收起阅读 »

县城赚钱的暴利生意背后,收割穷人的血汗钱

文章来源: 网上转载的,大部分都同意,除了最后一点。

年关难过年年过,但2019年的年关,着实有些不一样。
赶上年底办公地点搬迁,失去工位的评论君,被迫早早返乡,代号也从5A写字楼的Jeffrey转换成村头的二狗子。
作为长年在外务工人员,每次回乡过年,都是来去匆匆。
这次难得在家呆的时间长,年前穿梭在家乡的江南小城地级市,县城和乡村之间走亲戚。
见到听到的人和事, 让我意识到,这个世界的折叠程度,远远超过自己的想象。
最震惊我的,是那些县城里赚钱未遂的人。

01
堂哥的灯具店要关门了
回乡见得第一个亲人,是堂哥。堂哥开了三年的灯具店终于撑不住了,考虑关掉,想听听我的意见。
堂哥是大伯家的独子,刚过而立之年。念书不行,高中毕业就跟着大伯做早餐生意,但起早贪黑,对年轻人来说,确实太难。
三年前, 举全家之力,给堂哥在县城开了一家灯具店。
县城的生意逻辑在造势。为此,堂哥在银行贷了15万,把门店装修的很讲究。就这样,毫无灯具经营经验的堂哥一下子当上了老板。
店铺开起来,才知道有那么多活儿。
销售,上门安装,拉业务,催账,堂哥夫妻两根本忙不过来。于是,大伯的早餐店也盘出去,帮忙上门安装灯具,伯母负责做饭。
全家人围着店铺转,可生意还是每况愈下。
三年忙活下来,店铺的灯具品牌,从欧普、美的等知名品牌降级到杂牌产品。店铺租金太高,堂哥重找了个便宜店面。
最要命的是,三年前借的15万一分钱也没还。整个家庭陷入了进退不得的状态,还不如当初开早餐店。
对此,我觉得不可思议。问堂哥:
去年县城的房子不是卖得很不错嘛,怎么装修生意这么难做?
“炒房的太多了,哪有人真的装修。”
堂哥觉得很无力,我感到很震惊。“县城不到30万人,炒啥房!”
堂哥接触到最真实的市场情况,2018年,绝大多数县城的房子,都是被占坑式买房人买走的。
在外打工,听闻房价会涨,赶紧回家占个坑,或者是附近乡村的居民为了孩子念书,提前在县城买房。
这两类购房者,都不买堂哥的灯具。
堂哥的顾客,主要是周边乡镇自建房的农民。但自建房往往上门安装远,账又难收,利润薄如纸。
县城房地产市场火爆,与堂哥的灯具生意不仅毫无关系,还掏空了县城人们的腰包,导致堂哥的品牌灯具滞销,只能卖质差价廉的杂牌灯具。
堂哥盘点了一下,如果8万外账能顺利收回来。加上店里4万的灯具货量。再加上价值3万不到的拉货二手面包车,差不多还掉银行的贷款。
全家四个劳动力,忙活了三年,一分存款也没剩下。
堂哥盘算着:年底把店关了,明年大伯继续做早餐,自己考虑别的营生。
反正不开店不创业了。
如果说堂哥的灯具店的失败,是县城传统行业的缩影。另一件事,让我对县城的未来更担心了。

02
在老家卖水果的小刘
这是一个乡村创业故事,主人翁是我爷爷家隔壁邻居小孩小刘。
爷爷家是一个人口不到20万的乡镇,镇上只有一条街,底下还有七八个自然村,小刘比我小几岁。
我每次暑假回爷爷家,小刘每次就跟着我满田野里跑,他很机灵,但是不会念书。
长大后,我交了更厉害的朋友,便和小刘没了交集。
他成了我躺在好友列表里的微信好友。
通过他的朋友圈,我了解到,小刘初中肄业之后,一直在杭州一家百果园水果店工作。
2018年中,小刘突然微信找我,说自己要回乡创业,想听听我的建议。
我确认他不是借钱之后,松了一口气。正准备以受过高等教育的高级白领身份,好好点拨他。
小刘聊了他的想法,自己的家乡(我爷爷家的小镇)和大多是乡村一样,留守老人孩子多,但不舍得消费水果。
而在杭的老乡群里,很多老乡在外务工,想给家里留守儿童和老人买水果,既买不到,也无法送货上门。
小刘脑袋灵光,这可是一片蓝海。
杭州水果店的工作经验,让他基本摸清了生鲜店的进货渠道,和成本把控的诀窍。
再加上他长年担任门店的熟客微信群群主,对社群营销,更是有独到的见解。
我没想到,小刘的对于to C模式的理解,竟然如此深刻。
在我看来,这是典型的一线城市营销套路,对乡村市场的降维打击,无疑小刘真的是一个奇才。
于是,他决定回小镇开这样一个水果配送店。店很快开起来了。
小刘每天在群里,发当天水果照片和价格。
顾客大多是在外务工的年轻人,他们为尽孝心,也愿意花钱,通过微信转账的方式付款,小刘给客户家里留守老人和孩子配送,并拍视频作为反馈。
全新的营销方式,加上热心肠的小刘的服务态度,水果店的生意非常好。
但没想到,小刘的水果店还是没撑过春节。
自从开店以来,小刘开始每天凌晨进货,早上运营微信群,接单,配送。即使雇了人帮忙,小刘依然累得开车差点睡着。
忙不要紧,但不挣钱的瞎忙,就最致命了。
对生鲜产品来说,乡村的进货成本,远远超过了小刘的预期。为了控制坏果率,小刘每天凌晨,去最近的城市衢州市进货,结果是坏果率没下来,运输成本先上去了。
老家的人口本来就不多,加上很多老人一辈子节约惯了,心疼钱,所以对子女买来的新鲜水果有天然抗性。
人均收入低的乡村,自然客单价也提不上去,两边一挤压,小刘受不了。
这时候,小刘意识到,乡村的生鲜市场,被各大电商抛弃,不是没有原因的。
他在杭州这样的大城市看到的生鲜的刚性需求,到了乡村,一下子就变成伪需求了。
还没撑到车厘子上市的季节,小刘的店就关掉了,小刘重新回到杭州,找了一份月薪4000的工作。

03
县城的消费市场逻辑
不仅仅传统行业,在县城乡村的土壤无法生长,连小刘这样新颖的商业模式,也无法生存。
县城乡村的消费市场为什么如此萎靡?
我在思考,应该是是消费人口的缺失,导致购买力低下引起的。
年轻人是消费的主力军,但村里的上大学的年轻人,留在省会城市工作。没上学的年轻人,去沿海城市打工。
县城,好就好在消费水平低,坏就坏在,只有消费水平低。
县城缺乏机会,没有热钱,人情社会严重,缺乏工作岗位。寥寥的年轻人选择不多,不是挤破头考公务员,就是考教师资格证。
只有公务员和教师,才是体面的工作。
而就算是体面的工作,依然不会是高薪。这注定了县城的日常用品消费总需求固定,利润低。
消费升级的产品,根本没有对应消费人群。
当一线城市的杯均30RMB的喜茶/瑞幸咖啡/鹿角巷等遍地开花的时候,县城卖得最好的茶饮还是古茗,杯均10RMB。
罗胖在演讲里提到古茗成功的秘诀,县城和镇上晚上的灯光一般不够亮,你只要做一个很简单的事:就是把奶茶店门头的灯调得更亮,最好是能成为那条街上的路灯。
这样就能引起消费者的注意。
其实不然,客单价贴合县城的消费水准,才是奶茶店存活的不二法则。
否则,40块一杯的精品咖啡店开在县城,就算是用上疝气大灯照亮,依然没有市场。
我以为我找到了县城消费萎靡的元凶:购买力低下。
但后来的认知告诉我,我被重重地打脸了。

04
在县城,很多人都用力活着,但很少人用脑活着
虽然这么形容很刻薄,但看到人们花钱做出各种看似“无脑”的事情,真的很痛心。
在县城,似乎只有坑蒙拐骗,才能赚到钱。
和初中同学的饭桌上,听闻当年隔壁班的小美,做床垫生意,如今成为了县城排得上号的富婆。
联想到堂哥口中说的,县城里灯具生意,稍贵的品牌灯具卖不出去,只好卖便宜的杂牌灯具。
卖床垫能如此挣钱?我有些质疑真实性。
后来我知道,原来小美卖的,是玉石床垫,要价3万元到5万元不等,买的人络绎不绝。
没错,就是你第一时间想到的坑老年人的保健品床垫。
以送鸡蛋或大米的小恩惠,召集老年人开会、听课,宣传洗脑玉石床垫包治百病的功效,免费体验试睡。
每天大清早都有老人排队,等着免费“试睡”。不愿意排队的,或者觉得确实有功效的,就把养老钱掏出来买回家。
县城每一个赚钱的暴利生意背后,都是靠收割穷人的血汗钱而来的。
第二个血汗钱收割机,就是低价旅游。99元西湖两日游,399元香港三日游,699元三亚双飞豪华游。
这样大城市玩剩下的低价旅游骗局,在地方被受欢迎。结果可想而知,各种被套路买高价乳胶枕,玉石,名贵中药材等等案例遍地开花。
第三个血汗钱收割机,是民间借贷。p2p以及各种高息揽储的项目,你盯着别人的利息,别人看重的却是你的本金。
我爸告诉我,小时候带我练球的乒乓球教练,因为禁不住年化40%利息诱惑,民间借贷借出去200万遭遇爆雷,抛妻弃子,已经跑路了。
我很震惊,也很忿恨。
起早贪黑开球馆,抛去场地和雇教练的成本,净利润也不过年化20%,连腾讯这样的互联网独角兽的财报,净利润也达不到年化30%。
凭什么你会相信,你的全部养老钱可以躺赚年化40%的利润。

05
跳出这个财富链底层的四点劝诫
这个社会里,信息和财富的扩散,像是冲泡一杯蜜水,蜜总是从杯口慢慢渗透到杯底。
因为认知和信息的差距,导致县城和乡村,就是社会这杯蜜水的杯底。
在城市被淘汰的保健品骗局,入侵着这里的老年人。在大城市卖不动的假货,摆满了这里的货架。
这里的人们赚的不多,还最容易被骗。能不能跳出杯底,我有一些劝诫:
第一,保证全家人都能有健康的生活方式。
别说刚过温饱线的家庭,在疾病面前,连中产家庭也显得不堪一击。
ICU的床位费是1万一个晚上,特效药的报销比例接近于零。别听信“酒是粮食精,越喝越年轻”的鬼话。酒精和隔夜菜里的亚硝酸盐一样,都是一类致癌物。
第二,不要创业不要开店。
不要投入50万装修,开当地最大的网咖,因为等待着你的,是遥遥无期的回本之路。
不要开加工厂,一次工伤事故可能会吃掉你一年的利润。
不要试图开衣食住行以外的店,你的一己之力,无法违背市场规律。
小刘和堂哥,都是县城乡村创业的缩影。
作为一个没背景没资源的普通人,尽量找一份依靠技术和资源赚钱的工作,如果非要创业,请选择轻资产创业模式,不要梭哈。
第三,不要投资,不要炒股。
股票,是资本操纵下的负和游戏,穷人根本没有资格上牌桌。
徐翔案被曝光出的交易内幕,以及今年1月4号,央行降准消息发布前,券商入场拉升大盘等事件,都在说明一个真相:
我们生活在一个信息极不对等的世界里,那些先知先觉的人的背后,是一把把明晃晃的镰刀,等待收割散户。
而投资,同样是一件高门槛高风险的事情。
如果你遇到了一笔很容易的投资机会,它一定是个陷阱,包括但不限于p2p,民间借贷,分红型保险,原油螺纹钢等期货。
第四,为了孩子和自己的起点,请在能力范围内,在最高级别的城市,买房置业。
能买北上深,就不买杭广蓉,能买省会,就不买县城和地级市。
三四线房产只有居住属性,无金融属性。
如果还来得及,请卖掉三四线城市投资属性的房子。
未来三四线城市,将迎来滞涨时代
继续阅读 »
文章来源: 网上转载的,大部分都同意,除了最后一点。

年关难过年年过,但2019年的年关,着实有些不一样。
赶上年底办公地点搬迁,失去工位的评论君,被迫早早返乡,代号也从5A写字楼的Jeffrey转换成村头的二狗子。
作为长年在外务工人员,每次回乡过年,都是来去匆匆。
这次难得在家呆的时间长,年前穿梭在家乡的江南小城地级市,县城和乡村之间走亲戚。
见到听到的人和事, 让我意识到,这个世界的折叠程度,远远超过自己的想象。
最震惊我的,是那些县城里赚钱未遂的人。

01
堂哥的灯具店要关门了
回乡见得第一个亲人,是堂哥。堂哥开了三年的灯具店终于撑不住了,考虑关掉,想听听我的意见。
堂哥是大伯家的独子,刚过而立之年。念书不行,高中毕业就跟着大伯做早餐生意,但起早贪黑,对年轻人来说,确实太难。
三年前, 举全家之力,给堂哥在县城开了一家灯具店。
县城的生意逻辑在造势。为此,堂哥在银行贷了15万,把门店装修的很讲究。就这样,毫无灯具经营经验的堂哥一下子当上了老板。
店铺开起来,才知道有那么多活儿。
销售,上门安装,拉业务,催账,堂哥夫妻两根本忙不过来。于是,大伯的早餐店也盘出去,帮忙上门安装灯具,伯母负责做饭。
全家人围着店铺转,可生意还是每况愈下。
三年忙活下来,店铺的灯具品牌,从欧普、美的等知名品牌降级到杂牌产品。店铺租金太高,堂哥重找了个便宜店面。
最要命的是,三年前借的15万一分钱也没还。整个家庭陷入了进退不得的状态,还不如当初开早餐店。
对此,我觉得不可思议。问堂哥:
去年县城的房子不是卖得很不错嘛,怎么装修生意这么难做?
“炒房的太多了,哪有人真的装修。”
堂哥觉得很无力,我感到很震惊。“县城不到30万人,炒啥房!”
堂哥接触到最真实的市场情况,2018年,绝大多数县城的房子,都是被占坑式买房人买走的。
在外打工,听闻房价会涨,赶紧回家占个坑,或者是附近乡村的居民为了孩子念书,提前在县城买房。
这两类购房者,都不买堂哥的灯具。
堂哥的顾客,主要是周边乡镇自建房的农民。但自建房往往上门安装远,账又难收,利润薄如纸。
县城房地产市场火爆,与堂哥的灯具生意不仅毫无关系,还掏空了县城人们的腰包,导致堂哥的品牌灯具滞销,只能卖质差价廉的杂牌灯具。
堂哥盘点了一下,如果8万外账能顺利收回来。加上店里4万的灯具货量。再加上价值3万不到的拉货二手面包车,差不多还掉银行的贷款。
全家四个劳动力,忙活了三年,一分存款也没剩下。
堂哥盘算着:年底把店关了,明年大伯继续做早餐,自己考虑别的营生。
反正不开店不创业了。
如果说堂哥的灯具店的失败,是县城传统行业的缩影。另一件事,让我对县城的未来更担心了。

02
在老家卖水果的小刘
这是一个乡村创业故事,主人翁是我爷爷家隔壁邻居小孩小刘。
爷爷家是一个人口不到20万的乡镇,镇上只有一条街,底下还有七八个自然村,小刘比我小几岁。
我每次暑假回爷爷家,小刘每次就跟着我满田野里跑,他很机灵,但是不会念书。
长大后,我交了更厉害的朋友,便和小刘没了交集。
他成了我躺在好友列表里的微信好友。
通过他的朋友圈,我了解到,小刘初中肄业之后,一直在杭州一家百果园水果店工作。
2018年中,小刘突然微信找我,说自己要回乡创业,想听听我的建议。
我确认他不是借钱之后,松了一口气。正准备以受过高等教育的高级白领身份,好好点拨他。
小刘聊了他的想法,自己的家乡(我爷爷家的小镇)和大多是乡村一样,留守老人孩子多,但不舍得消费水果。
而在杭的老乡群里,很多老乡在外务工,想给家里留守儿童和老人买水果,既买不到,也无法送货上门。
小刘脑袋灵光,这可是一片蓝海。
杭州水果店的工作经验,让他基本摸清了生鲜店的进货渠道,和成本把控的诀窍。
再加上他长年担任门店的熟客微信群群主,对社群营销,更是有独到的见解。
我没想到,小刘的对于to C模式的理解,竟然如此深刻。
在我看来,这是典型的一线城市营销套路,对乡村市场的降维打击,无疑小刘真的是一个奇才。
于是,他决定回小镇开这样一个水果配送店。店很快开起来了。
小刘每天在群里,发当天水果照片和价格。
顾客大多是在外务工的年轻人,他们为尽孝心,也愿意花钱,通过微信转账的方式付款,小刘给客户家里留守老人和孩子配送,并拍视频作为反馈。
全新的营销方式,加上热心肠的小刘的服务态度,水果店的生意非常好。
但没想到,小刘的水果店还是没撑过春节。
自从开店以来,小刘开始每天凌晨进货,早上运营微信群,接单,配送。即使雇了人帮忙,小刘依然累得开车差点睡着。
忙不要紧,但不挣钱的瞎忙,就最致命了。
对生鲜产品来说,乡村的进货成本,远远超过了小刘的预期。为了控制坏果率,小刘每天凌晨,去最近的城市衢州市进货,结果是坏果率没下来,运输成本先上去了。
老家的人口本来就不多,加上很多老人一辈子节约惯了,心疼钱,所以对子女买来的新鲜水果有天然抗性。
人均收入低的乡村,自然客单价也提不上去,两边一挤压,小刘受不了。
这时候,小刘意识到,乡村的生鲜市场,被各大电商抛弃,不是没有原因的。
他在杭州这样的大城市看到的生鲜的刚性需求,到了乡村,一下子就变成伪需求了。
还没撑到车厘子上市的季节,小刘的店就关掉了,小刘重新回到杭州,找了一份月薪4000的工作。

03
县城的消费市场逻辑
不仅仅传统行业,在县城乡村的土壤无法生长,连小刘这样新颖的商业模式,也无法生存。
县城乡村的消费市场为什么如此萎靡?
我在思考,应该是是消费人口的缺失,导致购买力低下引起的。
年轻人是消费的主力军,但村里的上大学的年轻人,留在省会城市工作。没上学的年轻人,去沿海城市打工。
县城,好就好在消费水平低,坏就坏在,只有消费水平低。
县城缺乏机会,没有热钱,人情社会严重,缺乏工作岗位。寥寥的年轻人选择不多,不是挤破头考公务员,就是考教师资格证。
只有公务员和教师,才是体面的工作。
而就算是体面的工作,依然不会是高薪。这注定了县城的日常用品消费总需求固定,利润低。
消费升级的产品,根本没有对应消费人群。
当一线城市的杯均30RMB的喜茶/瑞幸咖啡/鹿角巷等遍地开花的时候,县城卖得最好的茶饮还是古茗,杯均10RMB。
罗胖在演讲里提到古茗成功的秘诀,县城和镇上晚上的灯光一般不够亮,你只要做一个很简单的事:就是把奶茶店门头的灯调得更亮,最好是能成为那条街上的路灯。
这样就能引起消费者的注意。
其实不然,客单价贴合县城的消费水准,才是奶茶店存活的不二法则。
否则,40块一杯的精品咖啡店开在县城,就算是用上疝气大灯照亮,依然没有市场。
我以为我找到了县城消费萎靡的元凶:购买力低下。
但后来的认知告诉我,我被重重地打脸了。

04
在县城,很多人都用力活着,但很少人用脑活着
虽然这么形容很刻薄,但看到人们花钱做出各种看似“无脑”的事情,真的很痛心。
在县城,似乎只有坑蒙拐骗,才能赚到钱。
和初中同学的饭桌上,听闻当年隔壁班的小美,做床垫生意,如今成为了县城排得上号的富婆。
联想到堂哥口中说的,县城里灯具生意,稍贵的品牌灯具卖不出去,只好卖便宜的杂牌灯具。
卖床垫能如此挣钱?我有些质疑真实性。
后来我知道,原来小美卖的,是玉石床垫,要价3万元到5万元不等,买的人络绎不绝。
没错,就是你第一时间想到的坑老年人的保健品床垫。
以送鸡蛋或大米的小恩惠,召集老年人开会、听课,宣传洗脑玉石床垫包治百病的功效,免费体验试睡。
每天大清早都有老人排队,等着免费“试睡”。不愿意排队的,或者觉得确实有功效的,就把养老钱掏出来买回家。
县城每一个赚钱的暴利生意背后,都是靠收割穷人的血汗钱而来的。
第二个血汗钱收割机,就是低价旅游。99元西湖两日游,399元香港三日游,699元三亚双飞豪华游。
这样大城市玩剩下的低价旅游骗局,在地方被受欢迎。结果可想而知,各种被套路买高价乳胶枕,玉石,名贵中药材等等案例遍地开花。
第三个血汗钱收割机,是民间借贷。p2p以及各种高息揽储的项目,你盯着别人的利息,别人看重的却是你的本金。
我爸告诉我,小时候带我练球的乒乓球教练,因为禁不住年化40%利息诱惑,民间借贷借出去200万遭遇爆雷,抛妻弃子,已经跑路了。
我很震惊,也很忿恨。
起早贪黑开球馆,抛去场地和雇教练的成本,净利润也不过年化20%,连腾讯这样的互联网独角兽的财报,净利润也达不到年化30%。
凭什么你会相信,你的全部养老钱可以躺赚年化40%的利润。

05
跳出这个财富链底层的四点劝诫
这个社会里,信息和财富的扩散,像是冲泡一杯蜜水,蜜总是从杯口慢慢渗透到杯底。
因为认知和信息的差距,导致县城和乡村,就是社会这杯蜜水的杯底。
在城市被淘汰的保健品骗局,入侵着这里的老年人。在大城市卖不动的假货,摆满了这里的货架。
这里的人们赚的不多,还最容易被骗。能不能跳出杯底,我有一些劝诫:
第一,保证全家人都能有健康的生活方式。
别说刚过温饱线的家庭,在疾病面前,连中产家庭也显得不堪一击。
ICU的床位费是1万一个晚上,特效药的报销比例接近于零。别听信“酒是粮食精,越喝越年轻”的鬼话。酒精和隔夜菜里的亚硝酸盐一样,都是一类致癌物。
第二,不要创业不要开店。
不要投入50万装修,开当地最大的网咖,因为等待着你的,是遥遥无期的回本之路。
不要开加工厂,一次工伤事故可能会吃掉你一年的利润。
不要试图开衣食住行以外的店,你的一己之力,无法违背市场规律。
小刘和堂哥,都是县城乡村创业的缩影。
作为一个没背景没资源的普通人,尽量找一份依靠技术和资源赚钱的工作,如果非要创业,请选择轻资产创业模式,不要梭哈。
第三,不要投资,不要炒股。
股票,是资本操纵下的负和游戏,穷人根本没有资格上牌桌。
徐翔案被曝光出的交易内幕,以及今年1月4号,央行降准消息发布前,券商入场拉升大盘等事件,都在说明一个真相:
我们生活在一个信息极不对等的世界里,那些先知先觉的人的背后,是一把把明晃晃的镰刀,等待收割散户。
而投资,同样是一件高门槛高风险的事情。
如果你遇到了一笔很容易的投资机会,它一定是个陷阱,包括但不限于p2p,民间借贷,分红型保险,原油螺纹钢等期货。
第四,为了孩子和自己的起点,请在能力范围内,在最高级别的城市,买房置业。
能买北上深,就不买杭广蓉,能买省会,就不买县城和地级市。
三四线房产只有居住属性,无金融属性。
如果还来得及,请卖掉三四线城市投资属性的房子。
未来三四线城市,将迎来滞涨时代
收起阅读 »

外企,中年失业何去何从 转载于知乎

 
认真回答,对关注者timeline负责。
 12/13更新。
1. 现实是什么和现实应该是什么?
 
民企累,民企苦,福利差,流程乱,老板苛刻。但是民企在蓬勃发展。
 外企轻松,福利好,流程齐全,老板和蔼,但是中国的外企绝大部分在衰退
比如手机,民企现在的没有做到世界第一第二,但是世界第3-10基本上都被搞残了。
这些都是客观现实,跟有没有人性没关系. 你不肯吃苦,就被肯吃苦的抢走客户.
 2.有人说,这是企业的前途,跟员工无关。我就要轻松福利好,家庭工作平衡。
当小兵当久了就是这种心态很正常。大船在下沉,这种状态可不可以长久,自己掂量。没人逼你现在跳船,但是你如果没有在之前学会游泳,那到时候说何去何从是你的事。
 有人反问:你在民企就学会游泳了?
还真学会的,在外企的人是老外的助手,在民企的人是老外的对手。人家是在跟你的领导一个赛道赛跑呢,时间久了,思维高度都不一样了。外企虽然钱多利润多,都给老外了,中国人就是个低成本的outsource. 现在民企的中国人,工资都比外企的中国人高了. (当然比不上老外高管)20年前可能只有1/10. 多大的差距.
 3. 牛的人在哪里都牛,我说了,外企牛人盼望裁员,裁员还有好多补偿而且马上有新工作。
如果外企全是这样的人,就不会问出“中年裁员何去何从”这个问题。我也没有拿华为去年年终奖的数字,来刺激外企的中国员工。
 4. 不同层次的人有不同的路——
底层,工资<1万,推荐去外企。
中层,工资在1万到3万,民企外企都能呆。
高层,工资在3万到10万,能够给这个钱的民企,前景肯定比外企好。
顶层,比如CXO,senior VP之类,等等,外企有中国人的顶层位置?不是金发碧眼至少也是绿卡人士, 在民企做的好的中国人能做到陆兆禧,在外企做的好的中国人能做CEO?
 5. 最后有人说:我外企给的钱够了。我不要做高层. 人各有志,也祝你好运。
好的评论我都推荐了,有空可以看看。
 =============分割线=======
作为一个从外企跳到民企的人。我一直就有一种很深刻的认识——中国的外企要被搞残!
一不重视中国市场. 二核心技术不给中国。三没有成本优势。四没有居安思危的态度。
建议每一个在外企的男人小心~
 我从某世界500强公司某世界第一的事业部,跳到中国对应的一家民营企业。我给你看下对比:
 
1. 论市场与细分外企把中国分为一个市场,中国属于亚太十三国之一。针对所有中国市场,只开发一种产品。民营企业把中国分成N个市场。北方和南方完全是两个截然不同的市场。江浙沪和云川渝又是一个截然不同的市场。不同的市场有不同的打法,不同的产品。
 
2. 论市场调研与客户需求调研外企的市场部的人,一天到晚坐在办公司里面喝咖啡写PPT,然后某个产品经理出去调研一下市场,拍些照片和视频,回来给其他人看。民企的市场部的人和研发的人,在工地跟工人同吃同住,现场灰尘大也要跟工人一起工作做试验,直到摸清楚客户需求和客户痛点以后才回来。
 
3. 论产品研发外企在中国的分部,说句难听的,核心的技术研发都放在欧美,中国的工厂没有研发,只有工程部。就是做value engineering和 localization. 他们的关键技术是降本。民营每当外企出一个新的产品,马上买回来,拆解,分析每个零部件的结构,性能,供应商品牌,然后做出一个benchmark表,说,他们用什么,我们用什么,我们比他们好在哪里。
 
4. 论人员组成和成本。在外企工作轻松,一眼看过去很多美女,好爽!搞研发的30%-50%是女人。外企一到下班时间,10分钟内人员撤退的干干净净,只剩几个领导在哪里加班干活。成本怎么不高?周末周日你要找人加班,实在是开不了口。客户需要服务,还要跟一堆人跑流程。外企的销售根本没有技术含量,感觉就像一个跟单员。反正牌子好,东西能卖出去。民营企业研发部门女人很少,绝大部分是男的。一到下班时间,很多人都去食堂吃饭,晚上一眼看过去,黑压压的一片男人在哪里干活。任何时候,如果客户一句话,都要过来加班。客户一旦需要服务,基本上立马就到。民企的销售个个像狼,跟经销商真的是刀山火海吃喝嫖赌都要把单子搞定。成本怎么不低?
 
5. 工资待遇与人力成本外企工资看上去其实不高,但是几个外派过来的高层的成本高到恐怖。不仅仅是工资,他们的别墅比天天住五星级酒店还贵,他们的孩子上学,他们的专车司机,他们这几年在中国的各种开销,都必须由公司摊。几个外企高管在中国的费用可能赶得上几千中国工人的费用。中国人工资普遍一般. 民企基层的工资有时候反而会比外企高,(不然吸引不了人过来)但是实际上工资除以平均工作时间,还是外企更贵。
 
5. 最终价格。民营企业的产品。功能性能跟外企差不多的,价格卖的比外企便宜20%-30%
功能性能比外企还强10%的,卖的价格比外企还低10%外企如果没有品牌,你说怎么比啊!
前面是手机基本是中国的天下,下一个十年就是汽车了。再二三十年,基本上所有的国产品牌都会慢慢起来。这就是为什么我买东西越来越倾向国产的原因。
但是国产也有自己的问题。
民企的弱点就是——中国制造业的批产稳定性质量不足。没办法,这是很多年的差距,需要慢慢赶。
买国产需要运气,同一批产品,可能好的产品很好,不好的到手没几天就坏了。
所以一定要买第一批上市且销量稳定的。
没有稳定的话可能买到手就坏了。稳定太久的,都用便宜货降本了。
但是中国制造还在追,一旦赶上,中国那些没有核心技术的外企分部,基本上都可以滚蛋了。
那些天天呆在里面喝咖啡为了一点鸡毛蒜皮的流程argue的人,如果你还没有掌握外企的有用的知识体系,基本上只能打GG了。
那个时候你还觉得自己端着外企白领的架子,就跟美国当年的汽车企业的工人被失业没有什么区别。
只不过中国你没有选票,不会有人在意你的死活的
 
=============
 
看到评论里面的一些话,我回复一下:
 1. 我只说中国的外企要残,没有说世界上的外企要亡。
效益不好,外企只不过是裁中国的员工罢了,好歹人家国外还是有上百年的核心技术的。
 2. 我在讲述一个中国职场的现实,你没有必要给我普及劳动法。
我并没有说民企的做法是有人性的,但是民企的做法在商场是有竞争力的。商场如战场,资本家只会看最终利益。你可以裁员的时候再去呼吁要不要尊重你。
牛逼的人都盼望外企裁员,因为裁员可以拿N+1的遣散费,而且人家马上就能找到新工作。我说的是那些不牛逼还在外企温水泡青蛙的,裁员了问何去何从的.
 3. 我说了,男人要小心!为什么——这不是歧视。这是中国的现实。
现在这几年当然呆在外企更舒服。从女人的角度,呆在外企更能工作家庭平衡。
从男人的角度——现在好,十年后不好,那个时候你上有老下有小,就很危险了。
 
继续阅读 »
 
认真回答,对关注者timeline负责。
 12/13更新。
1. 现实是什么和现实应该是什么?
 
民企累,民企苦,福利差,流程乱,老板苛刻。但是民企在蓬勃发展。
 外企轻松,福利好,流程齐全,老板和蔼,但是中国的外企绝大部分在衰退
比如手机,民企现在的没有做到世界第一第二,但是世界第3-10基本上都被搞残了。
这些都是客观现实,跟有没有人性没关系. 你不肯吃苦,就被肯吃苦的抢走客户.
 2.有人说,这是企业的前途,跟员工无关。我就要轻松福利好,家庭工作平衡。
当小兵当久了就是这种心态很正常。大船在下沉,这种状态可不可以长久,自己掂量。没人逼你现在跳船,但是你如果没有在之前学会游泳,那到时候说何去何从是你的事。
 有人反问:你在民企就学会游泳了?
还真学会的,在外企的人是老外的助手,在民企的人是老外的对手。人家是在跟你的领导一个赛道赛跑呢,时间久了,思维高度都不一样了。外企虽然钱多利润多,都给老外了,中国人就是个低成本的outsource. 现在民企的中国人,工资都比外企的中国人高了. (当然比不上老外高管)20年前可能只有1/10. 多大的差距.
 3. 牛的人在哪里都牛,我说了,外企牛人盼望裁员,裁员还有好多补偿而且马上有新工作。
如果外企全是这样的人,就不会问出“中年裁员何去何从”这个问题。我也没有拿华为去年年终奖的数字,来刺激外企的中国员工。
 4. 不同层次的人有不同的路——
底层,工资<1万,推荐去外企。
中层,工资在1万到3万,民企外企都能呆。
高层,工资在3万到10万,能够给这个钱的民企,前景肯定比外企好。
顶层,比如CXO,senior VP之类,等等,外企有中国人的顶层位置?不是金发碧眼至少也是绿卡人士, 在民企做的好的中国人能做到陆兆禧,在外企做的好的中国人能做CEO?
 5. 最后有人说:我外企给的钱够了。我不要做高层. 人各有志,也祝你好运。
好的评论我都推荐了,有空可以看看。
 =============分割线=======
作为一个从外企跳到民企的人。我一直就有一种很深刻的认识——中国的外企要被搞残!
一不重视中国市场. 二核心技术不给中国。三没有成本优势。四没有居安思危的态度。
建议每一个在外企的男人小心~
 我从某世界500强公司某世界第一的事业部,跳到中国对应的一家民营企业。我给你看下对比:
 
1. 论市场与细分外企把中国分为一个市场,中国属于亚太十三国之一。针对所有中国市场,只开发一种产品。民营企业把中国分成N个市场。北方和南方完全是两个截然不同的市场。江浙沪和云川渝又是一个截然不同的市场。不同的市场有不同的打法,不同的产品。
 
2. 论市场调研与客户需求调研外企的市场部的人,一天到晚坐在办公司里面喝咖啡写PPT,然后某个产品经理出去调研一下市场,拍些照片和视频,回来给其他人看。民企的市场部的人和研发的人,在工地跟工人同吃同住,现场灰尘大也要跟工人一起工作做试验,直到摸清楚客户需求和客户痛点以后才回来。
 
3. 论产品研发外企在中国的分部,说句难听的,核心的技术研发都放在欧美,中国的工厂没有研发,只有工程部。就是做value engineering和 localization. 他们的关键技术是降本。民营每当外企出一个新的产品,马上买回来,拆解,分析每个零部件的结构,性能,供应商品牌,然后做出一个benchmark表,说,他们用什么,我们用什么,我们比他们好在哪里。
 
4. 论人员组成和成本。在外企工作轻松,一眼看过去很多美女,好爽!搞研发的30%-50%是女人。外企一到下班时间,10分钟内人员撤退的干干净净,只剩几个领导在哪里加班干活。成本怎么不高?周末周日你要找人加班,实在是开不了口。客户需要服务,还要跟一堆人跑流程。外企的销售根本没有技术含量,感觉就像一个跟单员。反正牌子好,东西能卖出去。民营企业研发部门女人很少,绝大部分是男的。一到下班时间,很多人都去食堂吃饭,晚上一眼看过去,黑压压的一片男人在哪里干活。任何时候,如果客户一句话,都要过来加班。客户一旦需要服务,基本上立马就到。民企的销售个个像狼,跟经销商真的是刀山火海吃喝嫖赌都要把单子搞定。成本怎么不低?
 
5. 工资待遇与人力成本外企工资看上去其实不高,但是几个外派过来的高层的成本高到恐怖。不仅仅是工资,他们的别墅比天天住五星级酒店还贵,他们的孩子上学,他们的专车司机,他们这几年在中国的各种开销,都必须由公司摊。几个外企高管在中国的费用可能赶得上几千中国工人的费用。中国人工资普遍一般. 民企基层的工资有时候反而会比外企高,(不然吸引不了人过来)但是实际上工资除以平均工作时间,还是外企更贵。
 
5. 最终价格。民营企业的产品。功能性能跟外企差不多的,价格卖的比外企便宜20%-30%
功能性能比外企还强10%的,卖的价格比外企还低10%外企如果没有品牌,你说怎么比啊!
前面是手机基本是中国的天下,下一个十年就是汽车了。再二三十年,基本上所有的国产品牌都会慢慢起来。这就是为什么我买东西越来越倾向国产的原因。
但是国产也有自己的问题。
民企的弱点就是——中国制造业的批产稳定性质量不足。没办法,这是很多年的差距,需要慢慢赶。
买国产需要运气,同一批产品,可能好的产品很好,不好的到手没几天就坏了。
所以一定要买第一批上市且销量稳定的。
没有稳定的话可能买到手就坏了。稳定太久的,都用便宜货降本了。
但是中国制造还在追,一旦赶上,中国那些没有核心技术的外企分部,基本上都可以滚蛋了。
那些天天呆在里面喝咖啡为了一点鸡毛蒜皮的流程argue的人,如果你还没有掌握外企的有用的知识体系,基本上只能打GG了。
那个时候你还觉得自己端着外企白领的架子,就跟美国当年的汽车企业的工人被失业没有什么区别。
只不过中国你没有选票,不会有人在意你的死活的
 
=============
 
看到评论里面的一些话,我回复一下:
 1. 我只说中国的外企要残,没有说世界上的外企要亡。
效益不好,外企只不过是裁中国的员工罢了,好歹人家国外还是有上百年的核心技术的。
 2. 我在讲述一个中国职场的现实,你没有必要给我普及劳动法。
我并没有说民企的做法是有人性的,但是民企的做法在商场是有竞争力的。商场如战场,资本家只会看最终利益。你可以裁员的时候再去呼吁要不要尊重你。
牛逼的人都盼望外企裁员,因为裁员可以拿N+1的遣散费,而且人家马上就能找到新工作。我说的是那些不牛逼还在外企温水泡青蛙的,裁员了问何去何从的.
 3. 我说了,男人要小心!为什么——这不是歧视。这是中国的现实。
现在这几年当然呆在外企更舒服。从女人的角度,呆在外企更能工作家庭平衡。
从男人的角度——现在好,十年后不好,那个时候你上有老下有小,就很危险了。
  收起阅读 »

2019-02-13 复盘

算上节前一个交易日,很久没试过连续4天高收益了, 而数据告诉我,是时候减仓了。一定不能恋战, 管住手。
现在资金放入银华日利和逆回购,用工具来限制自己,放干里面的前,连一张可转债也买不到。
 
银华日利尚且可以T+0,有可能会被放出来买,后续要把资金存入更为长期的7天逆回购。
 
虽然是今年是正收益,可是还是跑输沪深300基准,同时也明白一个道理,要跑赢基准,谈何容易,过于集中持股,会严重回撤,或者中个雷,无法翻身。 过于分散,也是无法追上成分股的涨幅。
 
但是第一点,也是最重要的一点,还是要控制回撤,所以分散投资必不可少。
继续阅读 »
算上节前一个交易日,很久没试过连续4天高收益了, 而数据告诉我,是时候减仓了。一定不能恋战, 管住手。
现在资金放入银华日利和逆回购,用工具来限制自己,放干里面的前,连一张可转债也买不到。
 
银华日利尚且可以T+0,有可能会被放出来买,后续要把资金存入更为长期的7天逆回购。
 
虽然是今年是正收益,可是还是跑输沪深300基准,同时也明白一个道理,要跑赢基准,谈何容易,过于集中持股,会严重回撤,或者中个雷,无法翻身。 过于分散,也是无法追上成分股的涨幅。
 
但是第一点,也是最重要的一点,还是要控制回撤,所以分散投资必不可少。 收起阅读 »

2019

18年过的很失败  浪费了很多很多时间  
交易路上的蹒跚学步   
资金的不断缩水让自己很被动 
真的是踩了数不清的坑
每一次认知的修正都是真金白银换来的
 
忘了多少次一个人深夜散步
忘了多少次辗转失眠
好在换来一点点曙光 
短期的痛苦对长远的信念算不了什么
 
2019  
希望多一点开心 
舍得时间管理,把80%的时间精力放在20%最重要的事上,做反做乱都不行
重塑身体管理,18年这块失控了,被亏损后的消极心态影响
精进情绪管理,去年开始对情绪有所认知,但控制力还不够
关于人性,部分简单运用
静和慢,心静则体察精,学习寻寻渐进,做事有几分静气
完善思维体系,处理不同事物运用不同的思维模式,之前的太单一并不适合所有
结交些好友,希望能互相提高分享认知,身边人逐渐被生活随波逐流,
 
 
总是一个人记录在封闭的空间也不太好
慢慢往外挪一点吧
不喜太热闹
先试试看
 
 
 
 
继续阅读 »
18年过的很失败  浪费了很多很多时间  
交易路上的蹒跚学步   
资金的不断缩水让自己很被动 
真的是踩了数不清的坑
每一次认知的修正都是真金白银换来的
 
忘了多少次一个人深夜散步
忘了多少次辗转失眠
好在换来一点点曙光 
短期的痛苦对长远的信念算不了什么
 
2019  
希望多一点开心 
舍得时间管理,把80%的时间精力放在20%最重要的事上,做反做乱都不行
重塑身体管理,18年这块失控了,被亏损后的消极心态影响
精进情绪管理,去年开始对情绪有所认知,但控制力还不够
关于人性,部分简单运用
静和慢,心静则体察精,学习寻寻渐进,做事有几分静气
完善思维体系,处理不同事物运用不同的思维模式,之前的太单一并不适合所有
结交些好友,希望能互相提高分享认知,身边人逐渐被生活随波逐流,
 
 
总是一个人记录在封闭的空间也不太好
慢慢往外挪一点吧
不喜太热闹
先试试看
 
 
 
  收起阅读 »

imutils resize的用法

imutils这个库主要对cv2做了简单的封装,是函数用起来更加友好。
imutils.resize(img,height=xx,width=xxx)
修改图像的大小。 这个函数会根据图片的比例进行重新绘制大小,如果你的图片是200:200的图片比例,那么如果你使用resize函数的时候,resize(img,height=50,width=20) 那么最后修改的图像是已最小的那个数字对齐,也就是width=20,所以最后出来的图片大小是20*20,而不是50*20,或者50*50.
 
继续阅读 »
imutils这个库主要对cv2做了简单的封装,是函数用起来更加友好。
imutils.resize(img,height=xx,width=xxx)
修改图像的大小。 这个函数会根据图片的比例进行重新绘制大小,如果你的图片是200:200的图片比例,那么如果你使用resize函数的时候,resize(img,height=50,width=20) 那么最后修改的图像是已最小的那个数字对齐,也就是width=20,所以最后出来的图片大小是20*20,而不是50*20,或者50*50.
  收起阅读 »

scrapy response转化为图片

scrapy使用Request函数,URL为一个图片地址,那么返回的response是一个图片的bytes,使用response.text是无法获取到内容的,需要使用response.body, 返回一个b'xxxxxxxxxxxxxxxxx'的字节内容,然后直接把这个字节内容保存为图片即可:
with open('temp.jpg','wb') as f:
    f.write(reponse.body)
 
即可。
 
继续阅读 »
scrapy使用Request函数,URL为一个图片地址,那么返回的response是一个图片的bytes,使用response.text是无法获取到内容的,需要使用response.body, 返回一个b'xxxxxxxxxxxxxxxxx'的字节内容,然后直接把这个字节内容保存为图片即可:
with open('temp.jpg','wb') as f:
    f.write(reponse.body)
 
即可。
  收起阅读 »

python 中文图片文字识别

pytesseract这个库识别率偏低,也就菜鸟才会用。
使用方法很简单,安装好pytesseract(里面很多坑,小白的话不可避免要折腾一番),然后下载一个中文的字库,百度网盘:https://pan.baidu.com/s/1_jom2d95IeR40gsvkhUuvQ
 
然后把文件放到tesseract的文件夹中 C:\Program Files (x86)\Tesseract-OCR\tessdata 
然后就可以拿来识别了:
from PIL import Image
im = Image.open('chinese.jpg')
plt.figure(figsize=(20,20))
plt.imshow(im)

pytesseract.image_to_string(im,lang='chi_sim')

图片的内容是这样的:

中文1.JPG

 
然后识别效果如下:
 
'可L又使用以下的语句i上图片显示大 此'

还是不咋地。
 
那么可以换成大厂的API。试试百度的:
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()

image = get_file_content('example.jpg')

""" 调用通用文字识别, 图片参数为本地图片 """
client.basicGeneral(image);

""" 如果有可选参数 """
options = {}
options["language_type"] = "CHN_ENG"
options["detect_direction"] = "true"
options["detect_language"] = "true"
options["probability"] = "true"

from aip import AipOcr

""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)


""" 带参数调用通用文字识别, 图片参数为本地图片 """
client.basicGeneral(image, options)

url = "https//www.x.com/sample.jpg"

""" 调用通用文字识别, 图片参数为远程url图片 """
client.basicGeneralUrl(url);

""" 如果有可选参数 """
options = {}
options["language_type"] = "CHN_ENG"
options["detect_direction"] = "true"
options["detect_language"] = "true"
options["probability"] = "true"

""" 带参数调用通用文字识别, 图片参数为远程url图片 """
client.basicGeneralUrl(url, options)

先去百度云申请一个API,免费的。
https://cloud.baidu.com/doc/OCR/OCR-Python-SDK.html#.E9.85.8D.E7.BD.AEAipOcr
然后把key复制到上面的代码中就可以了。
 
然后再调用看看结果:
可以使用以下的语句让图片显示大些
正确率明显高很多了。
 
 
 
 
继续阅读 »
pytesseract这个库识别率偏低,也就菜鸟才会用。
使用方法很简单,安装好pytesseract(里面很多坑,小白的话不可避免要折腾一番),然后下载一个中文的字库,百度网盘:https://pan.baidu.com/s/1_jom2d95IeR40gsvkhUuvQ
 
然后把文件放到tesseract的文件夹中 C:\Program Files (x86)\Tesseract-OCR\tessdata 
然后就可以拿来识别了:
from PIL import Image
im = Image.open('chinese.jpg')
plt.figure(figsize=(20,20))
plt.imshow(im)

pytesseract.image_to_string(im,lang='chi_sim')

图片的内容是这样的:

中文1.JPG

 
然后识别效果如下:
 
'可L又使用以下的语句i上图片显示大 此'

还是不咋地。
 
那么可以换成大厂的API。试试百度的:
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()

image = get_file_content('example.jpg')

""" 调用通用文字识别, 图片参数为本地图片 """
client.basicGeneral(image);

""" 如果有可选参数 """
options = {}
options["language_type"] = "CHN_ENG"
options["detect_direction"] = "true"
options["detect_language"] = "true"
options["probability"] = "true"

from aip import AipOcr

""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)


""" 带参数调用通用文字识别, 图片参数为本地图片 """
client.basicGeneral(image, options)

url = "https//www.x.com/sample.jpg"

""" 调用通用文字识别, 图片参数为远程url图片 """
client.basicGeneralUrl(url);

""" 如果有可选参数 """
options = {}
options["language_type"] = "CHN_ENG"
options["detect_direction"] = "true"
options["detect_language"] = "true"
options["probability"] = "true"

""" 带参数调用通用文字识别, 图片参数为远程url图片 """
client.basicGeneralUrl(url, options)

先去百度云申请一个API,免费的。
https://cloud.baidu.com/doc/OCR/OCR-Python-SDK.html#.E9.85.8D.E7.BD.AEAipOcr
然后把key复制到上面的代码中就可以了。
 
然后再调用看看结果:
可以使用以下的语句让图片显示大些
正确率明显高很多了。
 
 
 
  收起阅读 »

jupyter notebook 修改plt显示的图片大小

默认在jupyter notebook中显示的图片都比较小,导致看不清楚。
可以使用以下的语句让图片显示大一些:
 
im = Image.open('chinese.png')
plt.figure(figsize=(20,20))
plt.imshow(im)

 
继续阅读 »
默认在jupyter notebook中显示的图片都比较小,导致看不清楚。
可以使用以下的语句让图片显示大一些:
 
im = Image.open('chinese.png')
plt.figure(figsize=(20,20))
plt.imshow(im)

  收起阅读 »

可转债价格分布堆叠图 绘制 可视化 python+pyecharts

这一节课带大家学习如何利用可视化,更好的呈现数据。
即使你有很多数据,可是,你无法直观地看到数据的总体趋势。使用可视化的绘图,可以帮助我们看到数据背后看不到的数据。 比如我已经有每一个可转债的价格,评级。数据如下:

可转债数据.JPG

 点击查看大图

如果我用下面的图形就可以看出规律:
可转债价格分布.JPG

 点击查看大图

横坐标是价格,纵坐标是落在该价格的可转债数量,不同颜色代表不同评级的可转债。
 
可以看到大部分AA-评级(浅橙色)的可转债价格都在100元以下,而AA(浅蓝色)的可转债价格分布较为平均,从90到110都有。而AA+和AAA的一般都在100以上。
 
那么如何使用代码实现呢?
from  setting import get_mysql_conn,get_engine
import pandas as pd
import pymongo
from pyecharts import Geo,Style,Map
engine = get_engine('db_stock',local='local')
# 堆叠图
from pyecharts import Bar
df = pd.read_sql('tb_bond_jisilu',con=engine)

result ={}
for name,grades in df.groupby('评级'):
# print(name,grades[['可转债名称','可转债价格']])
for each in grades['可转债价格']:
result.setdefault(name,)
result[name].append(each)


# 确定价格的范围

value = [str(i) for i in range(85,140)]
ret = [0]*len(value)
ret1 = dict(zip(value,ret))

ret_A_add = ret1.copy()
for item in result['A+']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
ret_A_add[k]+=1

retAA_ = ret1.copy()
for item in result['']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
retAA_[k]+=1

retAA = ret1.copy()
for item in result['AA']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
retAA[k]+=1

retAA_add = ret1.copy()
for item in result['AA+']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
retAA_add[k]+=1

retAAA = ret1.copy()
for item in result['AAA']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
retAAA[k]+=1

bar = Bar('可转债价格分布')
bar.add('A+',value,list(ret_A_add.values()),is_stack=True,yaxis_max=11)
bar.add('',value,list(retAA_.values()),is_stack=True,yaxis_max=11)
bar.add('AA',value,list(retAA.values()),is_stack=True,yaxis_max=11)
bar.add('AA+',value,list(retAA_add.values()),is_stack=True,yaxis_max=11)
bar.add('AAA',value,list(retAAA.values()),is_stack=True,yaxis_max=11)

如果没有安装pyecharts,需要用pip安装即可。
 

 

原创文章
转载请注明出处:
 http://30daydo.com/article/400 

 
继续阅读 »
这一节课带大家学习如何利用可视化,更好的呈现数据。
即使你有很多数据,可是,你无法直观地看到数据的总体趋势。使用可视化的绘图,可以帮助我们看到数据背后看不到的数据。 比如我已经有每一个可转债的价格,评级。数据如下:

可转债数据.JPG

 点击查看大图

如果我用下面的图形就可以看出规律:
可转债价格分布.JPG

 点击查看大图

横坐标是价格,纵坐标是落在该价格的可转债数量,不同颜色代表不同评级的可转债。
 
可以看到大部分AA-评级(浅橙色)的可转债价格都在100元以下,而AA(浅蓝色)的可转债价格分布较为平均,从90到110都有。而AA+和AAA的一般都在100以上。
 
那么如何使用代码实现呢?
from  setting import get_mysql_conn,get_engine
import pandas as pd
import pymongo
from pyecharts import Geo,Style,Map
engine = get_engine('db_stock',local='local')
# 堆叠图
from pyecharts import Bar
df = pd.read_sql('tb_bond_jisilu',con=engine)

result ={}
for name,grades in df.groupby('评级'):
# print(name,grades[['可转债名称','可转债价格']])
for each in grades['可转债价格']:
result.setdefault(name,)
result[name].append(each)


# 确定价格的范围

value = [str(i) for i in range(85,140)]
ret = [0]*len(value)
ret1 = dict(zip(value,ret))

ret_A_add = ret1.copy()
for item in result['A+']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
ret_A_add[k]+=1

retAA_ = ret1.copy()
for item in result['']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
retAA_[k]+=1

retAA = ret1.copy()
for item in result['AA']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
retAA[k]+=1

retAA_add = ret1.copy()
for item in result['AA+']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
retAA_add[k]+=1

retAAA = ret1.copy()
for item in result['AAA']:
for k in ret1:
if float(k)+0.5>item and float(k)-0.5<=item:
retAAA[k]+=1

bar = Bar('可转债价格分布')
bar.add('A+',value,list(ret_A_add.values()),is_stack=True,yaxis_max=11)
bar.add('',value,list(retAA_.values()),is_stack=True,yaxis_max=11)
bar.add('AA',value,list(retAA.values()),is_stack=True,yaxis_max=11)
bar.add('AA+',value,list(retAA_add.values()),is_stack=True,yaxis_max=11)
bar.add('AAA',value,list(retAAA.values()),is_stack=True,yaxis_max=11)

如果没有安装pyecharts,需要用pip安装即可。
 

 

原创文章
转载请注明出处:
 http://30daydo.com/article/400 

  收起阅读 »

拉勾网的反爬策略

更新于2019-01-23 ************
(请注意日期,因为不保证往后的日子里面反爬策略还有效)
 
1. 封IP,这个没的说,肯定要使用代理IP
2. scrapy里面的需要添加headers,而headers中一定要加上Cookies的数据。 之前要做Request中的cookies参数添加cookies,现在发现失效了,只能在headers中添加cookies数据。
 
   headers = {'Accept': 'application/json,text/javascript,*/*;q=0.01', 'Accept-Encoding':
'gzip,deflate,br',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', 'Cache-Control': 'no-cache',
# 'Connection': 'keep-alive',
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
'Cookie': 'JSESSIONID=ABAAABAABEEAAJAACF8F22F99AFA35F9EEC28F2D0E46A41;_ga=GA1.2.331323650.1548204973;_gat=1;Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1548204973;user_trace_token=20190123085612-adf35b62-1ea9-11e9-b744-5254005c3644;LGSID=20190123085612-adf35c69-1ea9-11e9-b744-5254005c3644;PRE_UTM=;PRE_HOST=;PRE_SITE=;PRE_LAND=https%3A%2F%2Fwww.lagou.com%2F;LGUID=20190123085612-adf35ed5-1ea9-11e9-b744-5254005c3644;_gid=GA1.2.1809874038.1548204973;index_location_city=%E6%B7%B1%E5%9C%B3;TG-TRACK-CODE=index_search;SEARCH_ID=169bf76c08b548f8830967a1968d10ca;Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1548204985;LGRID=20190123085624-b52a0555-1ea9-11e9-b744-5254005c3644',
'Host': 'www.lagou.com', 'Origin': 'https://www.lagou.com', 'Pragma': 'no-cache',
'Referer': 'https://www.lagou.com/jobs/list_%E7%88%AC%E8%99%AB?labelWords=&fromSearch=true&suginput=',
'User-Agent': 'Mozilla/5.0(WindowsNT6.3;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/71.0.3578.98Safari/537.36',
'X-Anit-Forge-Code': '0',
'X-Anit-Forge-Token': 'None',
'X-Requested-With': 'XMLHttpRequest'
}
继续阅读 »
更新于2019-01-23 ************
(请注意日期,因为不保证往后的日子里面反爬策略还有效)
 
1. 封IP,这个没的说,肯定要使用代理IP
2. scrapy里面的需要添加headers,而headers中一定要加上Cookies的数据。 之前要做Request中的cookies参数添加cookies,现在发现失效了,只能在headers中添加cookies数据。
 
   headers = {'Accept': 'application/json,text/javascript,*/*;q=0.01', 'Accept-Encoding':
'gzip,deflate,br',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', 'Cache-Control': 'no-cache',
# 'Connection': 'keep-alive',
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
'Cookie': 'JSESSIONID=ABAAABAABEEAAJAACF8F22F99AFA35F9EEC28F2D0E46A41;_ga=GA1.2.331323650.1548204973;_gat=1;Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1548204973;user_trace_token=20190123085612-adf35b62-1ea9-11e9-b744-5254005c3644;LGSID=20190123085612-adf35c69-1ea9-11e9-b744-5254005c3644;PRE_UTM=;PRE_HOST=;PRE_SITE=;PRE_LAND=https%3A%2F%2Fwww.lagou.com%2F;LGUID=20190123085612-adf35ed5-1ea9-11e9-b744-5254005c3644;_gid=GA1.2.1809874038.1548204973;index_location_city=%E6%B7%B1%E5%9C%B3;TG-TRACK-CODE=index_search;SEARCH_ID=169bf76c08b548f8830967a1968d10ca;Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1548204985;LGRID=20190123085624-b52a0555-1ea9-11e9-b744-5254005c3644',
'Host': 'www.lagou.com', 'Origin': 'https://www.lagou.com', 'Pragma': 'no-cache',
'Referer': 'https://www.lagou.com/jobs/list_%E7%88%AC%E8%99%AB?labelWords=&fromSearch=true&suginput=',
'User-Agent': 'Mozilla/5.0(WindowsNT6.3;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/71.0.3578.98Safari/537.36',
'X-Anit-Forge-Code': '0',
'X-Anit-Forge-Token': 'None',
'X-Requested-With': 'XMLHttpRequest'
}
收起阅读 »

python高手才知道的答案

记录一些python不为人知的有趣的用法或者知识点
 
1. 
>>> a = "some_string"
>>> id(a)
140420665652016
>>> id("some" + "_" + "string") # 注意两个的id值是相同的.
140420665652016

 2.
e = "wtf"
f = "wtf"
e is f
结果 True
 
e = "wtf?"
f = "wtf?"
e is f
结果 False

3.
some_dict = {}
some_dict[5.5] = "Ruby"
some_dict[5.0] = "JavaScript"
some_dict[5] = "Python"
 
>>> some_dict[5.5]
"Ruby"
>>> some_dict[5.0]
"Python"
>>> some_dict[5]
"Python"

Python 字典通过检查键值是否相等和比较哈希值来确定两个键是否相同.
具有相同值的不可变对象在Python中始终具有相同的哈希值.
 
4. 到处返回
def some_func():
try:
return 'from_try'
finally:
return 'from_finally'
 
>>> some_func()
'from_finally'

当在 "try...finally" 语句的 try 中执行 return, break 或 continue 后, finally 子句依然会执行.
函数的返回值由最后执行的 return 语句决定. 由于 finally 子句一定会执行, 所以 finally 子句中的 return 将始终是最后执行的语句.
 
5
for i in range(4):
print(i)
i = 10
你可曾觉得这个循环只会运行一次?

0 1 2 3
由于循环在Python中工作方式, 赋值语句 i = 10 并不会影响迭代循环, 在每次迭代开始之前, 迭代器(这里指 range(4)) 生成的下一个元素就被解包并赋值给目标列表的变量(这里指 i)了.
继续阅读 »
记录一些python不为人知的有趣的用法或者知识点
 
1. 
>>> a = "some_string"
>>> id(a)
140420665652016
>>> id("some" + "_" + "string") # 注意两个的id值是相同的.
140420665652016

 2.
e = "wtf"
f = "wtf"
e is f
结果 True
 
e = "wtf?"
f = "wtf?"
e is f
结果 False

3.
some_dict = {}
some_dict[5.5] = "Ruby"
some_dict[5.0] = "JavaScript"
some_dict[5] = "Python"
 
>>> some_dict[5.5]
"Ruby"
>>> some_dict[5.0]
"Python"
>>> some_dict[5]
"Python"

Python 字典通过检查键值是否相等和比较哈希值来确定两个键是否相同.
具有相同值的不可变对象在Python中始终具有相同的哈希值.
 
4. 到处返回
def some_func():
try:
return 'from_try'
finally:
return 'from_finally'
 
>>> some_func()
'from_finally'

当在 "try...finally" 语句的 try 中执行 return, break 或 continue 后, finally 子句依然会执行.
函数的返回值由最后执行的 return 语句决定. 由于 finally 子句一定会执行, 所以 finally 子句中的 return 将始终是最后执行的语句.
 
5
for i in range(4):
print(i)
i = 10
你可曾觉得这个循环只会运行一次?

0 1 2 3
由于循环在Python中工作方式, 赋值语句 i = 10 并不会影响迭代循环, 在每次迭代开始之前, 迭代器(这里指 range(4)) 生成的下一个元素就被解包并赋值给目标列表的变量(这里指 i)了. 收起阅读 »

numpy 二维数组按列合并

numpy的数组默认按行合并,如何按列合并?
 
先生产测试数组
# np 的运算
n = np.arange(1,17)

转化形态:
n0 = n.reshape(4,4)
变成4x4的矩阵
array([[ 1,  2,  3,  4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16]])

然后运用concatenate函数拼接:
np.concatenate((n0,n0),axis=1)
array([[ 1, 2, 3, 4, 1, 2, 3, 4], [ 5, 6, 7, 8, 5, 6, 7, 8], [ 9, 10, 11, 12, 9, 10, 11, 12], [13, 14, 15, 16, 13, 14, 15, 16]])

 这个只需要添加参数axis=1就可以了,axis默认是为0,按照行拼接。
np.concatenate((n0,n0),axis=1)

array([[ 1,  2,  3,  4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16],
[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16]])
继续阅读 »
numpy的数组默认按行合并,如何按列合并?
 
先生产测试数组
# np 的运算
n = np.arange(1,17)

转化形态:
n0 = n.reshape(4,4)
变成4x4的矩阵
array([[ 1,  2,  3,  4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16]])

然后运用concatenate函数拼接:
np.concatenate((n0,n0),axis=1)
array([[ 1, 2, 3, 4, 1, 2, 3, 4], [ 5, 6, 7, 8, 5, 6, 7, 8], [ 9, 10, 11, 12, 9, 10, 11, 12], [13, 14, 15, 16, 13, 14, 15, 16]])

 这个只需要添加参数axis=1就可以了,axis默认是为0,按照行拼接。
np.concatenate((n0,n0),axis=1)

array([[ 1,  2,  3,  4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16],
[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16]])
收起阅读 »

Django2.0+ 加载本地JS文件 配置

搜索网络上的,貌似有几种方案,不过都是坑,运行返回404,无法找到js文件的。 以下是自己亲测车工的。
 本地调试,把JS存放本地,可以加快调试速度,不然每次都从CDN上取,影响效率,且无法离线运行
(没有网络的情况下)。
 
环境:python3.6 + Django 2.1.5
 
文件结构:

1123.png

 
在django项目根目录,创建一个static的目录,里面存放一个jquery.js 的文件(这个文件可以到官方下载),然后在settings.py里面配置:
 
setting.py
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static/'),
)

 
然后在模板文件 test.html中引用:
 
<!DOCTYPE html>
{% load staticfiles %}
<html lang="en">
<head>
<meta charset="UTF-8">
<title>交割单查询</title>
<script type="text/javascript" src="{% static 'jquery.js' %}"></script>

然后重新运行django,就可以了。
继续阅读 »
搜索网络上的,貌似有几种方案,不过都是坑,运行返回404,无法找到js文件的。 以下是自己亲测车工的。
 本地调试,把JS存放本地,可以加快调试速度,不然每次都从CDN上取,影响效率,且无法离线运行
(没有网络的情况下)。
 
环境:python3.6 + Django 2.1.5
 
文件结构:

1123.png

 
在django项目根目录,创建一个static的目录,里面存放一个jquery.js 的文件(这个文件可以到官方下载),然后在settings.py里面配置:
 
setting.py
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static/'),
)

 
然后在模板文件 test.html中引用:
 
<!DOCTYPE html>
{% load staticfiles %}
<html lang="en">
<head>
<meta charset="UTF-8">
<title>交割单查询</title>
<script type="text/javascript" src="{% static 'jquery.js' %}"></script>

然后重新运行django,就可以了。 收起阅读 »

python数据爬取技术与实战手册 读后感


 书是师范学校的计算机老师写的。 

python数据爬取技术与实战手册_thumbnail.jpg

实话实说,质量不行。 最基本的代码排版都有很大问题(缩进,注释,命名规范等等),代码明显没有按照PEP8规范。

IMG_20190114_074228R.jpg

比如这里的第16行代码 ,注释和代码不相符。
 

IMG_20190108_224135R.jpg

这里根本是2行代码,然后排版没有换行。

而爬虫的代码也过于简单,缺乏注释,不推荐大家去看。
继续阅读 »

 书是师范学校的计算机老师写的。 

python数据爬取技术与实战手册_thumbnail.jpg

实话实说,质量不行。 最基本的代码排版都有很大问题(缩进,注释,命名规范等等),代码明显没有按照PEP8规范。

IMG_20190114_074228R.jpg

比如这里的第16行代码 ,注释和代码不相符。
 

IMG_20190108_224135R.jpg

这里根本是2行代码,然后排版没有换行。

而爬虫的代码也过于简单,缺乏注释,不推荐大家去看。 收起阅读 »

python的表达式执行顺序

-1<2==1
这个在python里的结果是什么?
 
答案是False

result.JPG

 
why ?
 
因为你要把表达式分开来看
1<2 and 2==1
这样就可以看出问题了。
True and False
那么答案就是False了。
 
继续阅读 »
-1<2==1
这个在python里的结果是什么?
 
答案是False

result.JPG

 
why ?
 
因为你要把表达式分开来看
1<2 and 2==1
这样就可以看出问题了。
True and False
那么答案就是False了。
  收起阅读 »

发现一个好玩的python脚本,你家小公主一定喜欢哈

 
#coding:utf-8
from turtle import *

def nose(x,y):#鼻子
penup()#提起笔
goto(x,y)#定位
pendown()#落笔,开始画
setheading(-30)#将乌龟的方向设置为to_angle/为数字(0-东、90-北、180-西、270-南)
begin_fill()#准备开始填充图形
a=0.4
for i in range(120):
if 0<=i<30 or 60<=i<90:
a=a+0.08
left(3) #向左转3度
forward(a) #向前走a的步长
else:
a=a-0.08
left(3)
forward(a)
end_fill()#填充完成

penup()
setheading(90)
forward(25)
setheading(0)
forward(10)
pendown()
pencolor(255,155,192)#画笔颜色
setheading(10)
begin_fill()
circle(5)
color(160,82,45)#返回或设置pencolor和fillcolor
end_fill()

penup()
setheading(0)
forward(20)
pendown()
pencolor(255,155,192)
setheading(10)
begin_fill()
circle(5)
color(160,82,45)
end_fill()


def head(x,y):#头
color((255,155,192),"pink")
penup()
goto(x,y)
setheading(0)
pendown()
begin_fill()
setheading(180)
circle(300,-30)
circle(100,-60)
circle(80,-100)
circle(150,-20)
circle(60,-95)
setheading(161)
circle(-300,15)
penup()
goto(-100,100)
pendown()
setheading(-30)
a=0.4
for i in range(60):
if 0<=i<30 or 60<=i<90:
a=a+0.08
lt(3) #向左转3度
fd(a) #向前走a的步长
else:
a=a-0.08
lt(3)
fd(a)
end_fill()


def ears(x,y): #耳朵
color((255,155,192),"pink")
penup()
goto(x,y)
pendown()
begin_fill()
setheading(100)
circle(-50,50)
circle(-10,120)
circle(-50,54)
end_fill()

penup()
setheading(90)
forward(-12)
setheading(0)
forward(30)
pendown()
begin_fill()
setheading(100)
circle(-50,50)
circle(-10,120)
circle(-50,56)
end_fill()


def eyes(x,y):#眼睛
color((255,155,192),"white")
penup()
setheading(90)
forward(-20)
setheading(0)
forward(-95)
pendown()
begin_fill()
circle(15)
end_fill()

color("black")
penup()
setheading(90)
forward(12)
setheading(0)
forward(-3)
pendown()
begin_fill()
circle(3)
end_fill()

color((255,155,192),"white")
penup()
seth(90)
forward(-25)
seth(0)
forward(40)
pendown()
begin_fill()
circle(15)
end_fill()

color("black")
penup()
setheading(90)
forward(12)
setheading(0)
forward(-3)
pendown()
begin_fill()
circle(3)
end_fill()


def cheek(x,y):#腮
color((255,155,192))
penup()
goto(x,y)
pendown()
setheading(0)
begin_fill()
circle(30)
end_fill()


def mouth(x,y): #嘴
color(239,69,19)
penup()
goto(x,y)
pendown()
setheading(-80)
circle(30,40)
circle(40,80)

def body(x,y):#身体
color("red",(255,99,71))
penup()
goto(x,y)
pendown()
begin_fill()
setheading(-130)
circle(100,10)
circle(300,30)
setheading(0)
forward(230)
setheading(90)
circle(300,30)
circle(100,3)
color((255,155,192),(255,100,100))
setheading(-135)
circle(-80,63)
circle(-150,24)
end_fill()


def hands(x,y):#手
color((255,155,192))
penup()
goto(x,y)
pendown()
setheading(-160)
circle(300,15)
penup()
setheading(90)
forward(15)
setheading(0)
forward(0)
pendown()
setheading(-10)
circle(-20,90)

penup()
setheading(90)
forward(30)
setheading(0)
forward(237)
pendown()
setheading(-20)
circle(-300,15)
penup()
setheading(90)
forward(20)
setheading(0)
forward(0)
pendown()
setheading(-170)
circle(20,90)

def foot(x,y):#脚
pensize(10)
color((240,128,128))
penup()
goto(x,y)
pendown()
setheading(-90)
forward(40)
setheading(-180)
color("black")
pensize(15)
fd(20)

pensize(10)
color((240,128,128))
penup()
setheading(90)
forward(40)
setheading(0)
forward(90)
pendown()
setheading(-90)
forward(40)
setheading(-180)
color("black")
pensize(15)
fd(20)

def tail(x,y):#尾巴
pensize(4)
color((255,155,192))
penup()
goto(x,y)
pendown()
seth(0)
circle(70,20)
circle(10,330)
circle(70,30)

def setting(): #参数设置
pensize(4)
hideturtle() #使乌龟无形(隐藏)
colormode(255) #将其设置为1.0或255.随后 颜色三元组的r,g,b值必须在0 .. cmode范围内
color((255,155,192),"pink")
setup(840,500)
speed(10)

def main():
setting() #画布、画笔设置
nose(-100,100) #鼻子
head(-69,167) #头
ears(0,160) #耳朵
eyes(0,140) #眼睛
cheek(80,10) #腮
mouth(-20,30) #嘴
body(-32,-8) #身体
hands(-56,-45) #手
foot(2,-177) #脚
tail(148,-155) #尾巴
done()

if __name__ == '__main__':
main()

安装turtle
pip install turtle
然后运行上面代码即可哈。
 
继续阅读 »
 
#coding:utf-8
from turtle import *

def nose(x,y):#鼻子
penup()#提起笔
goto(x,y)#定位
pendown()#落笔,开始画
setheading(-30)#将乌龟的方向设置为to_angle/为数字(0-东、90-北、180-西、270-南)
begin_fill()#准备开始填充图形
a=0.4
for i in range(120):
if 0<=i<30 or 60<=i<90:
a=a+0.08
left(3) #向左转3度
forward(a) #向前走a的步长
else:
a=a-0.08
left(3)
forward(a)
end_fill()#填充完成

penup()
setheading(90)
forward(25)
setheading(0)
forward(10)
pendown()
pencolor(255,155,192)#画笔颜色
setheading(10)
begin_fill()
circle(5)
color(160,82,45)#返回或设置pencolor和fillcolor
end_fill()

penup()
setheading(0)
forward(20)
pendown()
pencolor(255,155,192)
setheading(10)
begin_fill()
circle(5)
color(160,82,45)
end_fill()


def head(x,y):#头
color((255,155,192),"pink")
penup()
goto(x,y)
setheading(0)
pendown()
begin_fill()
setheading(180)
circle(300,-30)
circle(100,-60)
circle(80,-100)
circle(150,-20)
circle(60,-95)
setheading(161)
circle(-300,15)
penup()
goto(-100,100)
pendown()
setheading(-30)
a=0.4
for i in range(60):
if 0<=i<30 or 60<=i<90:
a=a+0.08
lt(3) #向左转3度
fd(a) #向前走a的步长
else:
a=a-0.08
lt(3)
fd(a)
end_fill()


def ears(x,y): #耳朵
color((255,155,192),"pink")
penup()
goto(x,y)
pendown()
begin_fill()
setheading(100)
circle(-50,50)
circle(-10,120)
circle(-50,54)
end_fill()

penup()
setheading(90)
forward(-12)
setheading(0)
forward(30)
pendown()
begin_fill()
setheading(100)
circle(-50,50)
circle(-10,120)
circle(-50,56)
end_fill()


def eyes(x,y):#眼睛
color((255,155,192),"white")
penup()
setheading(90)
forward(-20)
setheading(0)
forward(-95)
pendown()
begin_fill()
circle(15)
end_fill()

color("black")
penup()
setheading(90)
forward(12)
setheading(0)
forward(-3)
pendown()
begin_fill()
circle(3)
end_fill()

color((255,155,192),"white")
penup()
seth(90)
forward(-25)
seth(0)
forward(40)
pendown()
begin_fill()
circle(15)
end_fill()

color("black")
penup()
setheading(90)
forward(12)
setheading(0)
forward(-3)
pendown()
begin_fill()
circle(3)
end_fill()


def cheek(x,y):#腮
color((255,155,192))
penup()
goto(x,y)
pendown()
setheading(0)
begin_fill()
circle(30)
end_fill()


def mouth(x,y): #嘴
color(239,69,19)
penup()
goto(x,y)
pendown()
setheading(-80)
circle(30,40)
circle(40,80)

def body(x,y):#身体
color("red",(255,99,71))
penup()
goto(x,y)
pendown()
begin_fill()
setheading(-130)
circle(100,10)
circle(300,30)
setheading(0)
forward(230)
setheading(90)
circle(300,30)
circle(100,3)
color((255,155,192),(255,100,100))
setheading(-135)
circle(-80,63)
circle(-150,24)
end_fill()


def hands(x,y):#手
color((255,155,192))
penup()
goto(x,y)
pendown()
setheading(-160)
circle(300,15)
penup()
setheading(90)
forward(15)
setheading(0)
forward(0)
pendown()
setheading(-10)
circle(-20,90)

penup()
setheading(90)
forward(30)
setheading(0)
forward(237)
pendown()
setheading(-20)
circle(-300,15)
penup()
setheading(90)
forward(20)
setheading(0)
forward(0)
pendown()
setheading(-170)
circle(20,90)

def foot(x,y):#脚
pensize(10)
color((240,128,128))
penup()
goto(x,y)
pendown()
setheading(-90)
forward(40)
setheading(-180)
color("black")
pensize(15)
fd(20)

pensize(10)
color((240,128,128))
penup()
setheading(90)
forward(40)
setheading(0)
forward(90)
pendown()
setheading(-90)
forward(40)
setheading(-180)
color("black")
pensize(15)
fd(20)

def tail(x,y):#尾巴
pensize(4)
color((255,155,192))
penup()
goto(x,y)
pendown()
seth(0)
circle(70,20)
circle(10,330)
circle(70,30)

def setting(): #参数设置
pensize(4)
hideturtle() #使乌龟无形(隐藏)
colormode(255) #将其设置为1.0或255.随后 颜色三元组的r,g,b值必须在0 .. cmode范围内
color((255,155,192),"pink")
setup(840,500)
speed(10)

def main():
setting() #画布、画笔设置
nose(-100,100) #鼻子
head(-69,167) #头
ears(0,160) #耳朵
eyes(0,140) #眼睛
cheek(80,10) #腮
mouth(-20,30) #嘴
body(-32,-8) #身体
hands(-56,-45) #手
foot(2,-177) #脚
tail(148,-155) #尾巴
done()

if __name__ == '__main__':
main()

安装turtle
pip install turtle
然后运行上面代码即可哈。
  收起阅读 »

CryptoJS.enc.UTF8 中文乱码

最近在破解的JS的时候,遇到一个乱码问题。
内容用CryptoJS解密出来的,解出来是一个HTML格式的文本,标签,英文是正常显示的,但是中文是乱码的。
 
demo:
    # data='中国人'
data='hello'

ret = CryptoJS.AES.encrypt(data,'secret key 123')

content = ret.toString()
result = CryptoJS.AES.decrypt(content,'secret key 123')
print(result.toString(CryptoJS.enc.Utf8))
data用hello可以解密成功,

用“中国人”就还原不了
 
调试中。 
 
待更新。
 
已解决:
 
看大佬最近几期文章,有一篇解决了,就是去Python目录下lib文件夹里面dsubprocess.py
文件下更改encding为UTF-8,
继续阅读 »
最近在破解的JS的时候,遇到一个乱码问题。
内容用CryptoJS解密出来的,解出来是一个HTML格式的文本,标签,英文是正常显示的,但是中文是乱码的。
 
demo:
    # data='中国人'
data='hello'

ret = CryptoJS.AES.encrypt(data,'secret key 123')

content = ret.toString()
result = CryptoJS.AES.decrypt(content,'secret key 123')
print(result.toString(CryptoJS.enc.Utf8))
data用hello可以解密成功,

用“中国人”就还原不了
 
调试中。 
 
待更新。
 
已解决:
 
看大佬最近几期文章,有一篇解决了,就是去Python目录下lib文件夹里面dsubprocess.py
文件下更改encding为UTF-8, 收起阅读 »

missing 1 required positional argument on_delete --Django2.0

Django2.0+
使用ForeignKey 报错
TypeError: __init__() missing 1 required positional argument: 'on_delete'

解决办法:
from django.db import models
class Article(models.Model):
category = models.ForeignKey('Category', on_delete=models.PROTECT)
title = models.CharField(max_length=55)
# ...

def __str__(self):
return self.title

定义ForeignKey的时候添加参数on_delete,然后需要重新migration model,不然还是会报错。
(如果还是不行,把migration文件夹的内容全部删掉,在migrated一下)
继续阅读 »
Django2.0+
使用ForeignKey 报错
TypeError: __init__() missing 1 required positional argument: 'on_delete'

解决办法:
from django.db import models
class Article(models.Model):
category = models.ForeignKey('Category', on_delete=models.PROTECT)
title = models.CharField(max_length=55)
# ...

def __str__(self):
return self.title

定义ForeignKey的时候添加参数on_delete,然后需要重新migration model,不然还是会报错。
(如果还是不行,把migration文件夹的内容全部删掉,在migrated一下) 收起阅读 »

pyecharts真的是一个神一样的库

可视化太牛x了!!!  感叹一下国内的大牛。
可视化太牛x了!!!  感叹一下国内的大牛。

曾经的梦想是做一名职业赌徒,但是后来却发现这些规律


没有严格的止盈止损纪律,必败;
没有仓位控制输了加倍下注,必败
每手必下或者每局必玩,必败;
缺乏稳定的心理和情绪控制,必败;
认为自己下一把就能翻本,必败;
认为自己一定是那个幸运儿,必败;
认为自己肯定比别人聪明,必败。
唯一能保证你赢的方法,就是找一个符合上面规律的烂赌鬼反着和他下注,做他的对手盘。同样的道理和方法应该也适用于股市里的交易。
 
继续阅读 »

没有严格的止盈止损纪律,必败;
没有仓位控制输了加倍下注,必败
每手必下或者每局必玩,必败;
缺乏稳定的心理和情绪控制,必败;
认为自己下一把就能翻本,必败;
认为自己一定是那个幸运儿,必败;
认为自己肯定比别人聪明,必败。
唯一能保证你赢的方法,就是找一个符合上面规律的烂赌鬼反着和他下注,做他的对手盘。同样的道理和方法应该也适用于股市里的交易。
  收起阅读 »

python数据分析之 A股上市公司按地区分布与可视化 地图显示

首先传统方法是使用数据库:
SELECT area `地区`,count(*) as `数目` FROM `tb_basic_info` GROUP BY area order by 数目 desc;
得到下面的结果: 接着我们使用pandas进行数据可视化。
 地区 数目
浙江 431
江苏 401
北京 316
广东 303
上海 285
深圳 283
山东 196
福建 132
四川 120
湖南 104
安徽 103
湖北 101
河南 79
辽宁 72
河北 56
新疆 54
天津 50
陕西 49
重庆 48
吉林 41
江西 41
山西 38
黑龙江 37
广西 37
云南 33
甘肃 33
海南 31
贵州 29
内蒙 25
西藏 18
宁夏 13
青海 12
看看我们的641主席的功劳,江浙一带的上市公司数量已经超过广东了。
 
接下来我们使用pandas进行数据可视化:
 
首先读入数据:
# A股上市公司分布:
df = pd.read_sql('tb_basic_info',con=engine)
engine为from sqlalchemy import create_engine 中的连接引擎。
 
然后直接统计:
result = df['area'].value_counts()
得到的result就是统计结果:

地区统计_副本.jpg

 
看是不是比mysql语句简单多了?
 
得到一样的数据。
 
接下来使用图像来显示我们的数据:

地区绘图.JPG

 
什么? 一条命令就可以啦~ 实在太强大了!
从这个柱状图上,可以更加直观地看到A股上市公司的分布情况,东部长三角和珠三角的公司数目最多。而西部只有东部的零头。
 
接着把数据转化为百分比数据:
total = result.sum()
ration = result/total*100

a5.JPG

可以看到江浙地区占了22%的数量,体量还是很大的。
 
接下来,为了数据更加直观,把数据在地图上显示出来:

热力图.JPG

            点击查看大图

颜色越红,表明上市公司越多。现在数据够直观了吧。
 
实现代码:
# 热力图
def create_heatmap(attr,value,name,maptype):
style = Style(title_color="#fff", title_pos="center",
width=1200, height=600, background_color="#696969")

# 可视化
geo = Geo(name,**style.init_style)
geo.add("", attr, value, visual_range=[min(value), max(value)], symbol_size=8,
visual_text_color="#000",
is_visualmap=True, type='effectScatter',effect_scale=7,is_random=True,is_roam=False,is_piecewise = True,visual_split_number= 10,
)

geo.render('{}.html'.format(name))
 
create_heatmap(attr,value,'公司分布','china')

 

更多的数据分析,请关注本网站。
不定期更新哦
 
原创文章
转载请注明出处:
http://30daydo.com/article/388
 
继续阅读 »
首先传统方法是使用数据库:
SELECT area `地区`,count(*) as `数目` FROM `tb_basic_info` GROUP BY area order by 数目 desc;
得到下面的结果: 接着我们使用pandas进行数据可视化。
 地区 数目
浙江 431
江苏 401
北京 316
广东 303
上海 285
深圳 283
山东 196
福建 132
四川 120
湖南 104
安徽 103
湖北 101
河南 79
辽宁 72
河北 56
新疆 54
天津 50
陕西 49
重庆 48
吉林 41
江西 41
山西 38
黑龙江 37
广西 37
云南 33
甘肃 33
海南 31
贵州 29
内蒙 25
西藏 18
宁夏 13
青海 12
看看我们的641主席的功劳,江浙一带的上市公司数量已经超过广东了。
 
接下来我们使用pandas进行数据可视化:
 
首先读入数据:
# A股上市公司分布:
df = pd.read_sql('tb_basic_info',con=engine)
engine为from sqlalchemy import create_engine 中的连接引擎。
 
然后直接统计:
result = df['area'].value_counts()
得到的result就是统计结果:

地区统计_副本.jpg

 
看是不是比mysql语句简单多了?
 
得到一样的数据。
 
接下来使用图像来显示我们的数据:

地区绘图.JPG

 
什么? 一条命令就可以啦~ 实在太强大了!
从这个柱状图上,可以更加直观地看到A股上市公司的分布情况,东部长三角和珠三角的公司数目最多。而西部只有东部的零头。
 
接着把数据转化为百分比数据:
total = result.sum()
ration = result/total*100

a5.JPG

可以看到江浙地区占了22%的数量,体量还是很大的。
 
接下来,为了数据更加直观,把数据在地图上显示出来:

热力图.JPG

            点击查看大图

颜色越红,表明上市公司越多。现在数据够直观了吧。
 
实现代码:
# 热力图
def create_heatmap(attr,value,name,maptype):
style = Style(title_color="#fff", title_pos="center",
width=1200, height=600, background_color="#696969")

# 可视化
geo = Geo(name,**style.init_style)
geo.add("", attr, value, visual_range=[min(value), max(value)], symbol_size=8,
visual_text_color="#000",
is_visualmap=True, type='effectScatter',effect_scale=7,is_random=True,is_roam=False,is_piecewise = True,visual_split_number= 10,
)

geo.render('{}.html'.format(name))
 
create_heatmap(attr,value,'公司分布','china')

 

更多的数据分析,请关注本网站。
不定期更新哦
 
原创文章
转载请注明出处:
http://30daydo.com/article/388
  收起阅读 »