Java的Webmagic爬虫实践
前言有个需求,需要抓取天气的资讯文章,而该项目是用 Java 写的,由于爬虫需求也较小,所以就索性直接用 Java 来爬。
Java 有个包是 webmagic 本次就是用的这个包做的实践。
我们要采集的网址是 https://www.weather.com.cn/index/jqzdtqsj/index.shtml 打开这个网址可以看到是个列表,并且有分页。
配置 Maven 依赖12345678910<dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-core</artifactId> <version>0.10.3</version></dependency><dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-extension</artifac ...
支付宝周期扣款逻辑梳理和代码流程设计
周期扣款支付后签约场景文档支付宝周期扣款产品介绍
业务流程
请求支付字符串时携带签约信息拉起支付,并创建待签约的订阅表信息
处理签约成功回调,添加到订阅表
定时任务自行请求订阅表,把达到扣款日期的订阅,然后请求支付宝扣款,再计算下次扣款时间
处理签约解除回调,修改订阅表数据状态。(需要去设置网关回调地址)
数据表设计1. 用户周期扣款订阅表1234567891011121314151617181920CREATE TABLE `customer_period_subscribe` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `app_id` bigint(20) NOT NULL DEFAULT '0', `customer_id` bigint(20) NOT NULL DEFAULT '0', `vip_config_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '签约时购买的vip配置ID', `chann ...
SpringBoot 接口参数解密的实现方法(使用注解)
前言在 App 开发中,为了防止开发者轻易通过抓包获取到接口请求数据和响应数据,我们会对请求参数进行加密,后端通过解密获取,并加密返回给客户端,客户端通过解密获取。
而如果简单的在每个接口的 Controller 中来对请求参数解密,未免有些太傻,且如果想实现只有正式环境需对请求参数加密,测试环境无需加密,如果这种逻辑在 Controller 中写,更过于傻。
这次通过定义注解的方式来实现接口请求参数的统一解密,并在注解中判断是否需要解密。
加解密本身并不是什么有难度的事情,问题是在何时去处理?定义一个过滤器,将请求和响应分别拦截下来进行处理也是一个办法,这种方式虽然粗暴,但是灵活,因为可以拿到一手的请求参数和响应数据。不过 SpringBoot 中给我们提供了 ResponseBodyAdvice 和 RequestBodyAdvice,利用这两个工具可以对请求和响应进行预处理,非常方便。
所以这篇文章关于接口参数解密我们使用 RequestBodyAdvice 来实现。
定义注解接下来我们先定义一个注解
1234567891011package com.sktk.keepAccou ...
《做点事》读后感
题图拍摄于 2022年3月27日长沙居住地
时隔多日,读完了今年的第二本书,《做点事》。
首先介绍一下书的背景,这本书是不对外售卖的,是我的偶像「stormzhang」,张哥的一本书,属于内部星球球友的福利。
虽然张哥说这本书的书名起的比较随意,但我个人是非常喜欢这个名字的,人生在世,总得做点事。
起初我是从 2 月 4 日开始读的这本书,在读到将近一半的时候,因为星球有一期共读挑战,恰巧共读的书籍就是这本《做点事》,所以,我索性报名参加了这期共读挑战,从头开始读这本书,原因在于我想和大家一起共读这本书,并且每天共读都有一个打卡,要分享自己在书中阅读到的精华笔记,并发表个人感悟。
总共历时 21 天,从 3 月份开始的,到今天已经完整地将书内的内容全部读完,今天就来打卡总结这本书的内容。
书中共有 10 大板块,其中包括「关于赚钱、关于职场、关于产品、关于认知、关于思维、关于践行、关于写作、关于投资、关于商业、关于创业」。
最后还有一部分的对于商业案例的分享,其中包括「知乎好物、小红书、剧本杀、视频号、哔哩哔哩、闲鱼、淘宝蓝海」这几个部分。
今天我对于这 10 大板块和最后一部分的商业 ...
又传来猝死消息,生命只有一次
这件事还要从昨天晚上说起,昨天看到字节跳动员工猝死的消息,本来还在怀疑事情的可信性。
随后,今天一大早铺天盖地的各种网上消息迎面而来,说是字节视频架构部门的图像算法工程师在健身房健身时突发不适,告知工作人员,但未及时处理,导致错过黄金抢救时间,最终抢救了 41 小时无效,彻底的留下了他身怀 2 个月胎儿在身的老婆和按揭 30 年每月需要还 21000 的房贷,而他也才 28 岁。
这对他的老婆来说无疑是晴天霹雳,她现在的想法是想把房子卖掉,等后事办妥后回老家把小孩生出来,孕育小孩长大,抚养成人,度过这一生。若不是因为身怀胎儿,她想过直接随丈夫一起去了。
我很佩服这位当事人妻子的理性,为了肚子里的孩子要强迫自己休息、吃东西。
他们异地恋了 8 年,结婚了 3 年多,他们本应该是欣喜的等着宝宝的降生,原本也有能力承受每月 21000 的房贷,而突如其来的噩耗打破了原本属于 3 个家庭的平静。
下午的时候,字节发了一篇回应,讲了会给当事人家属抚恤和关怀,言语上看着态度还算是诚恳,而具体的事情如何落实就不得而知,如果落实到位,家属没有异议,那也算是给死者一个最后的体面。
在这个信息发展飞速的 ...
《底层逻辑》读后感
这是 2022 年读的第一本书,《底层逻辑》,这本书读了有 6 个小时左右(微信读书 App 记录的时间),从什么时候开始读的忘记了,下本书应该记录一下从什么时候开始读的。这也是第一次写读后感,也不知道怎么落笔,就简单的先从介绍下这本书的内容,到我读这本书的感受,到最后读完这本书有什么感想按照这样的顺序来说吧。
这本书的作者是吕白,是 21 年 9 月份的新书,我是在微信读书 App 上读的,这本书共有四大部分,分别为:人生逆袭的五个核心算法、突破阶层的四个关键、向上进阶的三大思维、锚定未来的四大策略。这本书的作者本身也是个作家,也是运营微信公众号的早期先行者,写过很多爆款,其中还著有《人人都能学会的刷屏文案写作技巧》、《人人都能做出爆款短视频》等书。
这本书中讲了作者从大学到工作多年来的经历,经历中是如何一步步提升的,如何透析任何事情的本质,从个人成长,到职场规则,都以作者个人的经历,一件具体的故事展开。
读这本书最大的感受是不论何时何地不能停止思考,一直思考才能使人进步,要始终保持长期投资的目光,不要计较短期的得失,人生是一场马拉松,不是百米赛跑,不用拼命冲刺,一直努力就好。关于焦 ...
程序员的2021年总结
转眼间2021年也过去了,也即将迎来了农历新年的日子。
回首过去,感慨最深的就是时光飞逝,眨眼间,距离第一份工作已经过去了 7 年,距离第一份程序员职业也已经过去了 5 年,上一次写年终总结还是 2018 年了,这次因为疫情的原因困在杭州,心血来潮,想起来要写一篇关于过去几年的总结和对未来的展望,对自己的状态做个复盘。
关于工作,过去几年并不算顺利,自己也不算满意,程序员这份职业是一个日新月异,需要不断持续向自己灌输新知识才能跟上发展的步伐,随着越来越多的人知道了程序员这份职业,越来越多的人了解到程序员的高薪,越来越多的人也涌入了程序员这个行业,在中国信息时代高速发展的今天,程序员用一行行代码敲出了这个世界的丰富多彩,就像当初工地上的工人用一块块砖头垒出了一座座高楼大厦。程序员也一直自嘲是码农,而在 2021 年北京市外来新生代农民工检测报告中,曾经的自嘲也被得到了实锤。
刚入行时也会有种错觉「会写程序的最厉害」,随着时间的推移,人的思想也会慢慢改变,觉得过去的一些想法很傻逼,技术是为了解决问题的,如果说一个技术不能解决问题,那这个技术就是一文不值。
从 19 年来到杭州找工作屡屡碰 ...
Java 微信提现报错:No appropriate protocol (protocol is disabled or cipher suites areinappropr)
前言今天在新的服务器上搭建 Java 环境,从 Oracle 官网上下载了最新的 jdk 版本 1.8.0_311,然后上传到服务器 jar 包,启动 jar 包,这些常规操作。本以为这个项目搭建就此结束,但是当测试提现功能时,服务器突然报错:No appropriate protocol (protocol is disabled or cipher suites are inappropr
解决首先排查了下微信商户号、支付参数等是否有误,但若参数有误的话微信会直接返回相应错误,所以不是该问题。
然后将思路转移到是否是环境问题,则确认了一下之前的服务器上的 jdk 版本和当前服务器 jdk 版本是否一致,因为下载的是最新的,所以已经不一致了
可以提现的服务器 jdk 版本是 212
当前服务器 jdk 版本是 311
经翻阅互联网文章发现 Java8-291 之后 , 禁用了 TLS1.1, 而我们安装的是 java8-311。并且该禁用该参数会导致微信提现报错,所以我们需要放开该限制。
修改 java.security 文件首先找到安装 java 的目录,如果忘记可以通过环境变量中 ...
Java 常用命令
查看 Java 版本1234➜ ~ java -versionopenjdk version "1.8.0_275"OpenJDK Runtime Environment (Zulu 8.50.0.1017-CA-macos-aarch64) (build 1.8.0_275-b01)OpenJDK 64-Bit Server VM (Zulu 8.50.0.1017-CA-macos-aarch64) (build 25.275-b01, mixed mode)
运行 Jar 包1java -jar app-1.0-SNAPSHOT.jar
后台运行 Jar 包并限制内存1nohup java -Xms128m -Xmx128m -XX:PermSize=128M -XX:MaxPermSize=128M -jar app-1.0-SNAPSHOT.jar > /dev/null 2>&1 &