Dust8 的博客

读书百遍其义自见

0%

最近又捡起了验证码识别学习,在数据集获取这一块,想的是用验证码生成器来生成,
这样不用手打,也不用打码花钱,更重要的是数据集可以很大。现在网上还是有很多
网站在用 kaptcha ,就选它了。
它的示例是给网站用的,我们自己生成验证码图片需要用它的接口来自己定制。

图片示例

默认
鱼眼

代码

下载它的代码,里面有可以引入的 jar 和文档。
大体流程如下

1
2
3
4
5
6
7
8
9
// 初始化配置
Config config = new Config(properties);
Producer kaptchaProducer = config.getProducerImpl();

// 创建图像中的文本
String capText = kaptchaProducer.createText();

// 用文本创建图像
BufferedImage bi = kaptchaProducer.createImage(capText);

vscode 开发 java 项目

因为我不是搞 java 的,在这里卡了很久。
vscode 创建项目,就最简单的 app。项目目录如下
项目目录

bin: 放编译的文件
lib: 放要引入的第三方 jar
src: 放自己的源代码
.classpath:放项目的配置

1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
<classpathentry kind="lib" path="lib/kaptcha-2.3.2.jar"/>
</classpath>

MANIFEST.MF:放打包的配置

1
2
3
Manifest-Version: 1.0
Class-Path: lib/kaptcha-2.3.2.jar
Main-Class: app/App

compile.bat: 放打包的命令,点击就可以了,免得总输入命令

1
2
jar cvfm dkaptcha.jar Manifest.MF -C bin . lib
pause

run.bat: 放运行的命令

1
2
java -jar dkaptcha.jar 4
pause

web.xml: 放配置文件

前段时间碰到根据法院名称到数据库找省市县的问题。数据库里面的法院名字是
标准的格式,但给的搜索名字是不标准的,会少一些字,少的字位置也不确定
没办法用数据库的模糊搜索。后来发现个库很好用叫
fuzzywuzzy,它可以从备选
的列表中选出最接近的一个。

代码

1
2
3
4
5
6
from fuzzywuzzy import process

courts = ['北京市第二中级人民法院','北京市第三中级人民法院','北京市石景山区人民法院']

print(process.extractOne('北京第三中院', courts)[0])
print(process.extractOne('石景山区法院', courts)[0])

输出

1
2
北京市第三中级人民法院
北京市石景山区人民法院

最近碰到把一个二级域名误解析到了2个ip上,导致接口调不通.
应为dns是可以这样操作的,所以添加的时候没有报错.因此需要添加域名指向后要确认下是否指向正确.

示例

query_dns.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function PrintTitle($title){
$sep = '+' *80
$sep
'+ {0}{1}+' -f $title,(' '*(80-10-$title.length))
$sep
}

# 获取本ds 服务器地址
PrintTitle('1. DnsClientServerAddress')
Get-DnsClientServerAddress -AddressFamily IPv4
''

# 清空 dns 缓存
PrintTitle('2. Flushdns')
ipconfig /flushdns
''

# 查询域名的 dns
PrintTitle('3. Resolve-DnsName for domain_waiting_to_be_queried.txt')
Get-Content 'domain_waiting_to_be_queried.txt' | Resolve-DnsName -Type A | Format-Table -Autosize

domain_waiting_to_be_queried.txt

1
2
3
google.com
bing.com
baidu.com

输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1. DnsClientServerAddress +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

InterfaceAlias Interface Address ServerAddresses
Index Family
-------------- --------- ------- ---------------
以太网 21 IPv4 {}
vEthernet (DockerNAT) 49 IPv4 {}
本地连接* 11 14 IPv4 {}
本地连接* 1 4 IPv4 {}
以太网 2 16 IPv4 {}
WLAN 15 IPv4 {192.168.0.1}
蓝牙网络连接 12 IPv4 {}
Loopback Pseudo-Interface 1 1 IPv4 {}
vEthernet (Default Switch) 24 IPv4 {}

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2. Flushdns +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Windows IP 配置

已成功刷新 DNS 解析缓存。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3. Resolve-DnsName for domain_waiting_to_be_queried.txt +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Name Type TTL Section IPAddress
---- ---- --- ------- ---------
google.com A 300 Answer 216.58.220.206
bing.com A 300 Answer 204.79.197.200
bing.com A 300 Answer 13.107.21.200
baidu.com A 386 Answer 123.125.115.110
baidu.com A 386 Answer 220.181.57.216

引用

以前用过 幕布 来生成思维导图,觉的很方便,不过免费的还是有限制。 这段时间想做个思维导图软件,可是搜了很久都没找到好的教程。没办法从头开始做,只能用别人的库来实现。比较有名的一点的是百度脑图开源的 kityminder-core,它支持 json, text, markdown,很满足需求。

我就写了个 jupyter notebook 的扩展 dmind

示例

text 格式

1
2
3
4
5
%%dmind text

DMind
是一个 jupyter notebook 插件
是一个思维导图插件

text 格式

markdown 格式, 逻辑结构图

1
2
3
4
5
6
7
8
9
10
11
12
%%dmind markdown right

# DMind使用文档
## 安装
### pip install dmind
## 使用
### 载入插件
#### %load_ext dmind
### 载入需要的附件
#### %dmindheader
### 渲染脑图
#### %%dmind datatype template theme 换行后输入内容

markdown 格式, 逻辑结构图

json 格式 , 目录组织图, 文艺绿

1
2
3
4
5
6
7
8
9
%%dmind json filetree fresh-green

{
"root": {
"data": {
"text": "Dmind参数说明"
},
"children": [
...

json 格式 , 目录组织图, 文艺绿

碰到的问题

主题和模板设置无效

去看完整的百度脑图实现,用 setTimeout 解决

一个页面多个脑图

只能生成多个脑图对象来渲染

在 notebook 上显示太小

只能给 km-view 类设置固定大小 400px

引用

python 更新到 3.7 版本后,运行 scrapy 报错。

1
2
3
def write(self, data, async=False):
^
SyntaxError: invalid syntax

原因

由于 python 版本的升级,async 成了关键字,导致 scrapy 的依赖库 twisted 报错.

##中国程序员解决办法
百度出来的居然都是改源代码。真的很讽刺,感觉小白喜欢复制粘贴,大牛都不上网。

##国外程序员解决办法
可以通过提交补丁的方式来解决
1.方法一

1
pip install git+https://github.com/scrapy/scrapy@master --no-dependencies --upgrade

2.方法二

1
pip install git+https://github.com/twisted/twisted.git@trunk

经过实验都可以。要等下一个正式版本的发布,这个问题才会彻底解决。