contour

记一次css字体反爬

时光怂恿深爱的人放手 提交于 2020-08-19 01:04:39
前段时间在看css反爬的时候,发现很多网站都做了css反爬,比如,设置字体反爬的(58同城租房版块,实习僧招聘 https://www.shixiseng.com/ 等)设置雪碧图反爬的(自如租房 http://gz.ziroom.com/ )。 还有一个网站本身是没有其他反爬措施的,只是设置了字体反爬,但是这个网站的反爬就有些扯淡, http://www.qiwen007.com/ ,我们随便点开一个文章,并打开开发者工具 其中的文字并不是像其他字体反爬一样,是将某些文字转为了Unicode显示在源码中的 首先来看一下破解流程及思路: """ 流程及思路: 1. 通过requests请求获取响应数据,得到的就是源码中加密数据(杂乱的文章) 2. 将加密数据的每一个字符转成Unicode编码,得到字符的Unicode列表 3. 通过搜索源码中font-face关键字,找到字体库文件(ttf/woff文件)将当前域名拼接上/hansansjm.ttf,即 http://www.qiwen007.com/hansansjm.ttf,打开后即下载 4. 使用FontCreator或者百度字体编辑器打开ttf文件,会看到里面每个字符 5. 将ttf转为xml文件 6. 同时使用pycharm打开xml文件,找到 glyf 标签下面的 TTGlyph 标签,里面的name

Pytorch 基本操作

ぐ巨炮叔叔 提交于 2020-08-16 19:36:31
Pytorch 基础操作 主要是在读 深度学习入门之PyTorch 这本书记的笔记。强烈推荐这本书 1. 常用类numpy操作 torch.Tensor(numpy_tensor) torch.from_numpy(numpy_tensor) GPU上的Tensor不能直接转换为Numpy ndarry,要用 .cpu() 将其转换到CPU # 第一种方式是定义 cuda 数据类型 dtype = torch.cuda.FloatTensor # 定义默认 GPU 的 数据类型 gpu_tensor = torch.randn(10, 20).type(dtype) # 第二种方式更简单,推荐使用 gpu_tensor = torch.randn(10, 20).cuda(0) # 将 tensor 放到第一个 GPU 上 gpu_tensor = torch.randn(10, 20).cuda(1) # 将 tensor 放到第二个 GPU 上 # 将tensor放回CPU cpu_tensor = gpu_tenor.cpu() 得到tensor大小 .size() 得到tensor数据类型 .type() 得到tensor的维度 .dim() 得到tnsor的所有元素个数 .numel() 全1矩阵。数据类型是floatTensor torch.ones(n, m)

图像处理:“可口可乐”识别的算法改进

社会主义新天地 提交于 2020-08-16 08:20:36
问题: One of the most interesting projects I've worked on in the past couple of years was a project about image processing . 我过去几年中最有趣的项目之一是关于 图像处理 的项目。 The goal was to develop a system to be able to recognize Coca-Cola 'cans' (note that I'm stressing the word 'cans', you'll see why in a minute). 目的是开发一个能够识别可口可乐 “罐头”的系统 (请注意,我强调的是“罐头”一词,稍后您会看到原因)。 You can see a sample below, with the can recognized in the green rectangle with scale and rotation. 您可以在下面看到一个示例,该示例在带有刻度和旋转的 绿色矩形中 可以识别。 Some constraints on the project: 对项目的一些限制: The background could be very noisy. 背景可能非常嘈杂。 The can could have any

超简单集成HMS ML Kit 人脸检测实现可爱贴纸

痴心易碎 提交于 2020-08-12 18:03:40
前言   在这个美即真理、全民娱乐的时代,可爱有趣的人脸贴纸在各大美颜软件中得到了广泛的应用,现在已经不仅局限于相机美颜类软件中,在社交、娱乐类的app中对人脸贴纸、AR贴纸的需求也非常广泛。本文详细介绍了集成华为HMS ML kit人脸识别实现2d贴纸的集成过程,在后面的文章中我们还会介绍3D贴纸的开发过程,欢迎大家关注哦~ 场景   在美颜相机、美图app以及社交类app(如抖音、微博、微信)等需要对拍照,或者对照片进行处理的app都会构建自己特有的贴纸的需求。 开发前准备 在项目级gradle里添加华为maven仓   打开AndroidStudio项目级build.gradle文件   增量添加如下maven地址: buildscript { { maven {url 'http://developer.huawei.com/repo/'} } } allprojects { repositories { maven { url 'http://developer.huawei.com/repo/'} } } 在应用级的build.gradle里面加上SDK依赖 // Face detection SDK. implementation 'com.huawei.hms:ml-computer-vision-face:2.0.1.300' // Face detection

自学 Python 到什么程度能找到工作,1300+ 条招聘信息告诉你答案

我怕爱的太早我们不能终老 提交于 2020-08-11 09:44:47
随着移动互联网的发展以及机器学习等热门领域带给人们的冲击,让越来越多的人接触并开始学习 Python。无论你是是科班出身还是非科班转行,Python 无疑都是非常适合你入门计算机世界的第一门语言,其语法非常简洁,写出的程序易懂,这也是 Python 一贯的哲学「简单优雅」,在保证代码可读的基础上,用尽可能少的代码完成你的想法。 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码! QQ群:1097524789 那么,我们学习 Python 到什么程度,就可以开始找工作了呢,大家都知道,实践是检验真理的唯一标准,那么学到什么程度可以找工作,当然得看市场的需求,毕竟企业招你来是工作的,而不是让你来带薪学习的。 所以,今天我们就试着爬取下拉钩上关于 Python 的招聘信息,来看看市场到底需要什么样的人才。 网页结构分析 打开拉钩网首页,输入关键字「Python」,接着按 F12 打开网页调试面板,切换到「Network」选项卡下,过滤条件选上「XHR」,一切准备就绪之后点击搜索,仔细观察网页的网络请求数据。 从这些请求中我们可以大致猜测到数据好像是从 jobs

圆形环绕字 从直角坐标到极坐标的转换

无人久伴 提交于 2020-08-11 06:28:48
极坐标通常用于校正图像中的圆形物体或者包含在圆环中的物体。 如上图所示 : 设原图变换的中心坐标(即圆心坐标)为 (Mr,Mc),图像上一点(r,c)极坐标变换后为(d,theta) 则 d = sqrt( (r - Mr) * (r - Mr) + (c - Mc ) * (c -Mc) ) theta = atan2( - (r - Mr) / (c - Mc)) 其反变换形式为 r = Mr - d sin(theta) c= Mc + d cos(theta) 本程序基于opencv2.3 // polar.cpp : 定义控制台应用程序的入口点。 // # include "stdafx.h" # include "highgui.h" # include "cv.h" # include "cxcore.h" # ifdef DEBUG # pragma comment(lib, " opencv_core231d.lib" ) # pragma comment(lib, "opencv_features2d231d.lib" ) # pragma comment(lib, "opencv_flann231d.lib" ) # pragma comment(lib, "opencv_gpu231d.lib" ) # pragma comment(lib, "opencv

Ambiguous cases in Marching square algorithm

ε祈祈猫儿з 提交于 2020-08-08 07:09:59
问题 If we take Wikipedia article on Marching square into account, we see that case#5 and case#10 are said to be ambiguous cases. I have implemented Marching Square as follows and I am not understanding how an ambiguous case can arise: public class LinesRectangle { public Graphics Graphics { get; set; } public Color Color { get; set; } public Pen Pen { get; set; } public int Thickness { get; set; } public LinesRectangle() { Color = Color.Blue; Thickness = 2; Pen = new Pen(Color, Thickness); }