Python 关于SVG 矢量图验证码的破解心得
svg 矢量图
# code_map 纯数字验证码svg@d属性的长度.
CODE_MAP = {
"1": [998, 1081],
"2": [2546, 2758],
"3": [3878, ],
"4": [2318, 2140],
"5": [2606, 2823],
"6": [2632, 2851],
"7": [2212, 2042],
"8": [3414, 3698],
"9": [2800, 2382, 3033],
"0": [2382, 2580],
}
def svg_code(code_list):
"""code_list = 所有svg标签下 path标签中的d属性values"""
key_code_dict = {}
for code in code_list:
for key, values in CODE_MAP.items():
if len(code) > 500 and len(code) in values:
# 乱序中 根据M 值进行code码排序
key_code_dict.update({int(str(code).split(".")[0].split("M")[1]): key})
code_list = sorted(key_code_dict.keys())
code_str = "".join([key_code_dict[i] for i in code_list])
print(code_str)
return code_str