下载评论多的抖音视频和相关的评论

抖音有些评论相当的精彩,所以这次用python加fiddler来下载评论多的视频和相应的评论

刚开始打算用fiddler来抓抖音手机APP的包,按如下配置:

1、fiddler只能抓http/https协议的包,默认只能抓http协议包

如果要抓https协议包,需要如下配置:

Tools-Options-HTTPS-依次勾选全部

2、Actions里面-Trust Root Certificate-确定 来trust信用证书

3、Connections,设置端口号,fiddler默认8888

如果是手机用数据线连电脑就要把里面的 允许远程电脑连接也点上

4、如果是模拟器里装抖音或者手机装抖音并通过WIFI连接网络来抓包就在模拟器或者手机里设置网络代理为装fiddler的电脑IP

5、在手机上打开装fiddler的电脑的IP:8888,下载证书安装

按网上这个步骤来会导致抖音上不了网,按分析有可能是抖音应用证书问题,用了SSL Pinning主要就是来防止中间人攻击的,安卓应用会在HTTPS建立时对服务端返回的证书作校验,如果不一致则无法建立连接,我们用到的抓包工具fiddler或burpsuite实际上就是在起一个中间人的作用。具体可以参考https://zhuanlan.zhihu.com/p/511136064,以后再按这个来试下,今天还是按抖音网页版来抓包分析吧,

此段代码放到fiddler中的script的response中

 if (m_Hide304s && oSession.responseCode == 304) {
      oSession["ui-hide"] = "true";
    }
    
    if (oSession.uriContains("https://aweme.snssdk.com/aweme/v1/general/search/single/")){
      var strBody=oSession.GetResponseBodyAsString();
      var sps = oSession.PathAndQuery.slice(-58,);
      //FiddlerObject.alert(sps)
      var timestamp=new Date().getTime();
      var filename = "D:\抖音评论资料" + "/" + sps + timestamp + ".json";
      var curDate = new Date(); 
      var sw : System.IO.StreamWriter; 
      if (System.IO.File.Exists(filename)){ 
        sw = System.IO.File.AppendText(filename); 
        sw.Write(strBody); 
      } 
      else{ 
        sw = System.IO.File.CreateText(filename); 
        sw.Write(strBody); 
      } 
      sw.Close(); 
      sw.Dispose(); 

替换掉上面的网址和保存地址,这样网页版刷抖音时会把评论的JSON文件下载下来,视频信息JSON也同理操作

下载后用python分析JSON数据,把评论数大于36000的视频下载,并把相应的评论,视频信息插入数据库,相关代码见pycharm代码库

后面将把视频和评论在网站上展示出来。

当前长,短期经济分析

传统视角下思考经济周期波动主要是看需求,包括消费、投资、出口。因为经济的供给能力变化是很慢的,一两年的短期内,生产能力通常不会有很大的变化,所以经济短期的波动主要是需求变化引起的。但这一次不一样,疫情对产业链、对交通等供给侧因素会带来一种暂停键式的冲击。俄乌冲突也有类似的效果,欧洲乃至全球的能源供应的受到了显著影响,这些都是和传统的经济周期波动不一样的地方。

  中国最近的宏观数据也体现了相同的逻辑,二季度GDP增速下滑至0.4%(2022Q1为4.8%),6月份的CPI通胀反而进一步上升到2.5%(2022年3月为1.5%)。如果是从传统的经济周期视角看,GDP增速下滑这么多,物价上涨率甚至是物价水平都有可能是下降的,但我们的通胀水平反而是上升的。这背后是受到前述供给下降的影响,也就是说我们当前面临的宏观问题不仅是需求下降了,供给也下降了,所以导致了通胀水平反而是上升的。

  国际贸易数据也印证了这一点。在2020年疫情冲击刚出现的时候,国际贸易量跌得多、价格跌得少。疫情缓解之后,国际贸易复苏,但量涨得少、价涨得多,体现了全球经济的滞胀态势。

美国疫情期间的财政扩张,通过货币支持财政扩张,或者说财政赤字货币化,导致的结果是消费需求很强,付出的代价是通胀比较高。同样是应对疫情,我们中国在2020年主要是靠信贷,信贷主要是和投资尤其是房地产联系在一起的,它对消费有一定的帮助,但没有财政扩张的影响那么大。所以刺激过后的遗留问题,在中国主要体现为债务压力很大,例如房地产的问题、地方债务问题,这会对经济下行造成较大的压力。

两大经济体面对着不同的滞、胀表现,公共政策的选择也在持续分化。美国M2增速在2020年大幅上升,里面有一半是财政的贡献,去年几乎所有的M2增长都是来自于财政。最近美国M2增速明显下行,很大程度上是因为财政的贡献开始下降了,目前看大概贡献不到一半了。我们中国的政策也在调整,更多依靠财政实现货币扩张,今年的财政扩张力度可能是近些年少见的。

  总之,2020年各国在公共政策上的选择差异,实际上是在选择经济的哪个层面承受疫情的冲击多一点。一旦这个层面难以承受了,就会导致政策做出再调整。美国是前期的财政赤字货币化扩张力度太大了,因此今年要财政紧缩、货币加息,我们中国前期是信贷扩张力度太大了,现在需要通过财政扩张来弥补信贷扩张所带来的不好的效果。

  需要强调的是,疫情冲击之外,我们还面临着金融周期的下行。所谓金融周期就是房价和信贷,或者说是房地产和企业、家庭部门的债务,相辅相成、相互促进。金融周期的指数上行反映了房价上升,下行则意味着房价增长放缓,也意味着债务的增长放慢。一个完整的金融周期大约需要15到20年的时间,中国从本世纪初到现在经历了第一个金融周期。这个金融周期最近几年一直在往下走,非常不好的是赶上了疫情,相互叠加的影响导致了最近面临的情况,尤其是最近的房地产和债务的问题,对经济带来了比较大的下行压力。

  在这种情况下怎么办?宏观政策如何抉择?最优的选择仍然是财政。为什么说财政政策在这个时间点对中国来讲是关键?为什么在美国今年财政大幅紧缩的情况下,中国要财政扩张呢?有三个原因。

  第一是应对金融的顺周期性。靠信贷来扭转当前的周期压力不是说完全不可能,但要付出很大的代价。因为现在投资者等经济主体的风险偏好较低,尤其是面向房地产的风险偏好比较低,要多大的信贷扩张才能把这种预期和信心扭转?这时候就需要财政政策。只有财政政策才能真正做到逆周期的效果,所以从应对金融的顺周期性,需要财政发挥逆周期的调节功能。

  第二是财政政策在增加供给方面具有比较优势。我们现在面临的问题不是传统的需求驱动的经济周期波动,是供给受到灾害冲击驱动的经济周期。我们要更多地增加供给,这靠货币信贷是很难做到的,一个重要的方式是靠财政减税降费来降低经济主体的运营成本,增加供给能力。

  第三是发挥社会保障功能,调节收入分配,应对非对称影响。只有财政才能发挥社会保障的功能。

  总之,在金融周期下半场,在信贷紧缩的情况下,货币扩张是用来支持财政的,而不是支持信贷扩张的,也就是“紧信用、松货币、宽财政”。

  看今年的财政力度,不能仅看预算,而是要把政府性基金、央行利润上缴、过去财政结余的使用放在一起,我们估计今年中国广义财政扩张力度较去年有3个百分点的提升。2021年下半年中国经济为什么出现了比较大的下行压力?因为2021年中国的广义财政赤字率紧缩了3个百分点,从8.6%紧缩到5.6%。同时,去年的新增贷款对GDP的比例也是小幅紧缩的。财政信贷双紧缩,去年的经济下行压力就一点不奇怪了。

今年怎么样?受益于政策发力,信贷基本企稳,但经济本身有顺周期的下行压力,因此信贷需求是一个比较弱的企稳。财政方面有三个百分点的扩张,这是今年和去年的最大不同,意味着只要今年下半年疫情没有大的反复(这是我们宏观政策很难控制的),今年下半年到明年上半年经济应该会有一个明显的甚至是比较强的反弹。关于未来几个季度的通胀预测,确实有比较大的不确定性,最大的不确定性是疫情,这个是宏观政策很难控制的。但总体大的判断是,下半年到明年上半年有一个比较强劲的经济反弹,明年上半年因为基数效应或者是伴随着增长反弹而来的CPI通胀,也会有比较明显的上升。

  政策会不会超调?因为很多时候逆周期调节的时候,力度是不好把握的,尤其是要把经济内在的顺周期下行压力扭转过来,往往可能需要矫枉过正,也就是政策可能会出现超调,难免会带来负面的效果。关键是比较财政扩张、信贷扩张和货币宽松三个整个选项,哪个超调的负面效果比较小。财政扩张的风险是通胀,信贷扩张的风险是进一步的债务扩张和房地产问题恶化,如果房地产价格进一步上升,甚至一线城市下一步也会可能出现问题。在美国加息幅度比较大的情况下,货币宽松可能会带来货币贬值的回来压力。

  这三个风险的负面效果,哪个更小一点?见仁见智。我个人的观点,在这个时间点CPI通胀的负面效果可能相对小一点。不是说它好,而是说它负面的效果相对小一点。所以,如果矫枉过正难以避免的话,我认为应该更多地依靠财政扩张,因为再通过信贷搞一轮新的大规模债务扩张,只是饮鸩止渴。

  最后总结一下,短期来讲是经济重启。上半年是“数据弱、政策松”,下半年是数据转强、经济转好,但政策仍然是宽松状态。

就这一轮的经济重启而言,在宏观政策选择上,财政货币协同是我们新的方向,尤其是央行利润上缴。所面临的风险主要是两个非经济因素,一个是新冠疫情,一个是地缘政治冲突,尤其是俄乌冲突的影响。这是短期,也就是未来12个月的分析。

  中期来讲,经济重构有三个方面。第一个是债务重组,金融周期下行阶段,我们面临从房地产开发企业到地方城投债务等债务重组压力,这是未来几年面临的问题。第二个是创新驱动,既提升增长又改善供给。第三个是共同富裕,金融周期下行叠加疫情冲击的背景下,促进共同富裕也是未来几年政策的重点。

  总之,债务重组解决过去的存量问题,科技创新和共同富裕是未来的两个新方向,也是我们思考未来宏观经济发展所要重视的方向。彭文生:下半年到明年上半年有一个比较强劲的经济反弹

NAT类型

下载并运行《NatTypeTester》,因工具原地址已失效,将STUN server栏中的地址修改成“stun.voipbuster.com”或者stun.qq.com,点击“GET”即可测试类型。

1. Full Cone NAT:NAT1将来自同一个内部元组X的的所有请求转换为同一个外部元组Y,无论这些请求属于同一个应用程序还是多个应用程序。此外,当X-Y转换关系建立后,任何外部主机都可以随时使用Y中的地址和端口作为目标地址和端口,向内部主机发送UDP消息。因为对外部请求的来源没有限制,所以这个方法足够简单,但是不那么安全。(任何外部主机/端口都可以与前一个内部节点映射到的外部元组通信)


2.Restricted Cone NAT:它是Full Cone的受限版本:来自同一个内部元组X的的所有请求都被NAT转换为同一个外部元组Y,与Full
Cone相同,但不同的是只有当内部主机已经向外部主机发送了消息(假设其IP地址为Z)时,
外部主机可以以Y中的信息作为目标地址和端口向内部主机发送UDP请求消息,这意味着NAT设备只转发(转换目标地址/端口)那些来自当前已知外部主机的UDP消息,从而保证了外部请求源的安全性。
(IP相同,端口任意,可以与前一个内部节点映射到的外部Tuple通信)

Port Restricted Cone NAT(NAT3

端口受限锥型NAT,相比NAT2,NAT3 又增加了端口限制,也就是说IP、端口都会受限。


Symmetric NAT(NAT4

对称型NAT,具有端口受限锥型的受限特性,内部地址每一次请求一个特定的外部地址,都可能会绑定到一个新的端口号。也就是请求不同的外部地址映射的端口号是可能不同的。这种类型基本上就告别 P2P 了。


由上面可以看出从NAT1到NAT4限制越来越多,为了各种需求,我们希望提升NAT类型。提升NAT类型的好处有,浏览网页、观看视频、游戏等更顺畅,下载速度更稳定快速,尤其是对喜欢玩游戏的用户,提升NAT类型后更容易进入游戏房间连线等。

IPv6

IPv6地址表示

  我们知道,IPv4地址长度为32位(4个字节)。书写IPv4的地址是用一个字节来代表一个无符号十进制整数,四个字节写成由3个点分开的四个十进制数,例如:

  10.1.123.56

  对于128位的IPv6地址,定义相似的表示方法是必要的。 考虑到IPv6地址的长度是原来的四倍,RFC1884规定的标准语法建议把IPv6地址的128位(16个字节)写成8个16位的无符号整数,每个整数用四个十六进制位表示,这些数之间用冒号(:)分开,例如:

  3ffe:3201:1401:1:280:c8ff:fe4d:db39

  从上面的例子我们看到了手工管理IPv6地址的难度,也看到了DHCP和DNS的必要性。为了进一步简化IPv6的地址表示,可以用0来表示0000,用1来表示0001,用20来表示0020, 用300来表示0300,只要保证数值不便,就可以将前面的0省略。比如:

  1080:0000:0000:0000:0008:0800:200C:417A

  0000:0000:0000:0000:0000:0000:0A00:0001

  可以简写为:

  1080:0:0:0:8:800:200C:417A

  0:0:0:0:0:0:A00:1

  另外,还规定可以用符号::表示一系列的0。那么上面的地址又可以简化为:

  1080::0:8:800:200C:417A

  A00:1

和IPv4一样,IPv6也分公网和内网,开头只要不是F开头,都是公网IP。

国内三大运营商的IPv6地址分配情况分别是:

电信为240e开头的(240e::/20);移动为2409开头的(2409:8000::/20);联通为2408开头的(2408:8000::/20)。 如果外网获取到的是fe80开头的地址,是不能拿来上网的。

fe80::/10,做内网地址,本地链路地址,用于单一链路,适用于自动配置、邻机发现等,路由器不转发以fe80开头的地址,私网地址是fd00::/8,这相当于IPv4的10.0.0.0/8、172.16.0.0/12、192.168.0.0/16

  IPv6地址的前缀(FP, Format Prefix)的表示和IPv4地址前缀在CIDR中的表示方法类似。比如 0020:0250:f002::/48表示一个前缀为48位的网络地址空间。

IPv6:前缀ID+接口ID/前缀长度,如2001:0000:0000:0000:0011:0000:0000:0010/64

IPv6的数字太多,多到地球上每粒沙子都能分配一个,这么多的ip怎么来划分一块一块的呢、如何区分呢?所以就有了前缀这个概念。

IPv6的前缀就是把IPv6的地址,转换为二进制,从左向右的个数。

例如:fe80::/10

这个/10就是fe80的前缀,我们把fe80转换为二进制,就是:1111 1110 1000 0000,我们从左向右数,十位二进制分别为1111 1110 10,这十位是不能动的,就意味着,前缀是不能动的,固定的,只有后面的118位是可以变动的。那么这个二进制后面就可以写为: 1111 1110 1011 1111 11111 11111 1111 1111………….

综上,fe80::/10的ip范围就是:fe80::—-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff

比如电信给我家里分配的地址为:240e:fc:b841:700::/56 ,其实就是240e:00fc:b841:0700::,前面不能变动,后面的都属于我,想一想,这得有多少个IPv6,多的数不完。

运营商提供的IPv6线路主要分为支持前缀授权和不支持前缀授权两种,支持前缀授权就是把一整个网段直接给你自己去用,可在路由器设置中开启前缀授权功能,在外部网络/WAN配置里面,连接类型选择Native DHCP即可,有些路由器会是自动获取这个选项,需要注意的是获取到外网IPv6的IP后,可能还需要手动开启内网的DHCP v6用于给该路由器下联的设备分配IP,无特殊需求用默认的stateless即可,设置好路由器的相关参数后,终端(电脑、手机等)勾选IPv6协议,并开启自动获取IPv6地址和DNS服务器即可,

对于不支持前缀授权的运营商线路,无法由路由器给终端分配IPv6地址,终端IPv6地址统一由运营商进行分配,因此需要路由器支持IPV6桥模式,打开桥模式,再把wan和lan的V6功能禁用就可以了

设置好后打开浏览器输入www.test-ipv6.com,就可以看到线路是否支持IPv6了。

::1/128,即0:0:0:0:0:0:0:1,回环地址,就是IPv4中的localhost(127.0.0.1)

RFC1884中指出了三种类型的IPv6地址,他们分别占用不同的地址空间:

  单点传送:这种类型的地址是单个接口的地址。发送到一个单点传送地址的信息包只会送到地址为这个地址的接口。

  任意点传送:这种类型的地址是一组接口的地址,发送到一个任意点传送地址的信息包只会发送到这组地址中的一个(根据路由距离的远近来选择)

  多点传送:这种类型的地址是一组接口的地址,发送到一个多点传送地址的信息包会发送到属于这个组的全部接口。 和IPv4不同的是,IPv6中出现了任意点传送地址,并以多点传送地址代替了IPv4中的广播地址。

  

IPV6地址在线ping

Emoji表情插入Mysql时表字符集要转改成 utf8mb4

问题描述:

  插入Mysql时失败了,python代码报如下异常:

  pymysql.err.InternalError: (1366, “Incorrect string value: ‘\\xF0\\x9D\\x90\\xBF;……

原因分析:

  UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。

解决方案:

  修改Mysql表的字符集和Pymysql连接库时的字符集。

  1、修改Mysql表的字符集

    说明:将已经建好的表字符集转改成 utf8mb4,排序规则改为 utf8mb4_bin

    命令:alter table TABLE_NAME convert to character set utf8mb4 collate utf8mb4_bin; (将TABLE_NAME替换成你的表名)

    注意:排序规则不是 utf8mb4_general_ci,而是utf8mb4_bin,不要想当然

  2、修改数据库连接的字符集        

    conn = pymysql.connect(host=’localhost’, user=’root’, password=’root’, port=3306, db=’cncb’, charset=’utf8mb4′)

底层民营经济现状

最近有和3线城市以前就认识的几个民营企业主接触,其中一个原来一直做点通信国企周边产品,早几年因为政策原因自宫,然后做过很多项目,到现在没有一样可以说是成功,特别是有段加入金融传销,搞得很乱,现在大体还是靠原来和国企余下的一点业务在勉强维持。另一个原来也是和国企做,然后切入政府基础设施做了点工程,但最近反映17.18年的帐都还没付清,在想利用最近财政部下发的要求各级部门清欠的文件要政府付款或者政府给一定的资产来抵债,所以基本上现在除非有专项资金的政府项目才接了,对有专项资金又有上面文件政策支持的新能源项目的兴趣增加。

现在3.4线城市的民营经济很大比例还是靠政府活着,处在有什么项目能赚钱就争做什么项目,没有靠积累来发展。网上平台的发展,门面越来越多,个体户的日子也内卷严重,没有一定的资本,规模,就谈不上发展,更谈不上研发来提高竞争力。

中美经济的差异

中美经济的本质差异藏着普通人赚钱的秘密:

中国是“债权经济”,而非“股权经济”。像中国这种经济,如今改革改了40年,我们还是间接融资为主,银行为主,而银行就是一个债权。这个“债权为主”的经济,就是上去、下来都会放大。这是为什么呢?因为债务是一个杠杆。

经济热的时候,大家都是对未来看好的,借贷需求非常的旺,因为物价都是在涨,物价减掉以后,真实利率是负的,谁借钱谁合算。借了钱买房,房价涨的都会超过利息,很多家庭都懂得这个道理。

借钱买资产,资产涨得快,是很合算的。这个杠杆作用在好的时候会放大,而坏的时候,物价指数一下来,名义利率哪怕不变,真实利率就迅速转正。这是现在很多企业和地方困难的根本原因。

股权为主的经济体,没有这个问题。股权这个东西,放进去不能退,好就是分红,不好就是一起赔,这是“股权为主”经济的特征。所以在中国要买房,在美国要炒股才能大概率赚到钱。

中国股权经济比例将会上升

避险货币

日元被称为避险货币,也就是国际上发生黑天鹅等重大风险事件的时候,全球资金就会大量流向日元避险。其实,并不是日本有多强大,而是日元的利率低到不能再低了,没有利率下调的空间,反而让其有了避险货币的属性。这和美元依靠美国强权支撑的避险属性有本质区别。
一般而言,避险货币有三大属性:低利率、庞大的国际资产净头寸和具有深度和流动性的金融市场。

利率是持有某种货币所需要付出的成本,因此避险货币必须是成本低廉的;换个角度来理解,高风险的资产高收益,那么作为低风险的避险资产则意味着低利率。目前美国、日本和瑞士三国央行的政策利率分别为0.5%,-0.1%和-0.75%,除加息周期的美元外,日本和瑞士的政策利率在历史上均处于长期低位。

拥有更高的国际资产净头寸意味着更多的海外资产和更低的外部脆弱性,在风险来临时可以卖掉海外资产转换为本国货币,从而强化了本国货币的相对避险属性。

具有深度和流动性的金融市场通常需要满足的基本条件是货币可以自由兑换,衡量指标是交易的买卖价差。

美元、日元和瑞士法郎是世界三大避险货币,它们有着截然不同的主导成因:

瑞士法郎的避险特征来源于永久的中立国地位,在发生地缘政治冲突时,能对资产提供有效的保值;

美元来自于美国的经济实力和货币的国际化,作为世界大宗贸易的主要结算币种,经济动荡时期投资者普遍愿意持有美元;

日元则来自于其长期的低利率和低通胀环境,催生了强大的套息交易市场。

即日元的避险属性来源于低到不能再低的利率,使得资金在押注时是明显的右侧交易,即日元利率上升是大概率事件。

一个小故事

大约2016年左右,当时认识一个北方的朋友拉来他一个在派出所上班的老乡一起打牌,打完牌坐车一起去吃饭,在路上比较堵,等车时突然这个派出所上班的老兄开门就跑下去,一溜烟儿跑到一台车前啪一个军礼,然后指挥现场,让这台车先行通过走了,我们看了下车牌,警000开头,马屁拍得是…….本以为这样的人才会混得很好,但现在好像一般般。