Born to be proud
8/27
2017

利用Selenium爬取网络数据

Selenium 简介

Selenium 是一个用于Web应用程序测试的工具。Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。框架底层使用 JavaScript 模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。

环境配置

sudo apt-get install python默认2.7.12
sudo apt-get update        #更新下apt-get库否则下载pip会出错
sudo apt-get install python-pip        #默认是8.1.1
sudo pip install selenium    #安装selenium
sudo apt-get install firefox
sudo apt-get install xvfb
sudo pip install pyvirtualdisplay
下载 geckodriver        https://github.com/mozilla/geckodriver/releases
sudo chmod a+w geckodriver

8/19
2017

利用 VBA 处理 Excel 数据

Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。

VBA 编写的宏命令可以取代手动对 Excel 的大量操作,也可以实现 Excel 未提供的函数。相比其他语言, VBA 天然的支持 Excel 大规模数据处理,对 Excel 格式数据处理更快,省去了格式字符匹配等问题。同时 VBA 可与 Excel 中自带的函数混合使用,提高了易用性。

8/13
2017

Zxing Camera 调用代码解析

Zxing 是一个开源的,支持多种一维二维条码格式的图像处理类库,用 JAVA 实现,支持多种语言接口。同时提供了 android 摄像头调用相关类库,用于手持设备的扫码解码。

本文主要介绍了 Android 系统调用 Camera 实现扫码的过程解析。

目录及相关类

  • activity: 扫码相关Activity
    • CaptureActivity: 扫码主界面Activity
    • CaptureFragment: 承载预览界面SurfaceView 和取景框 ViewfinderView

8/5
2017

LRU & LFU 数据结构

在内容替换算法中,LRU 与 LFU 是最为经典的两种置换算法。替换策略本身简单易懂,但在大规模内容处理时,设计高效的数据结构与插入查找方法使得时间复杂度较低并不简单。

LRU

LRU 即 Least Recently Used,最近最少使用算法。当有新内容需要缓存时,LRU 算法使用新内容替换掉最久没有使用的内容。

image

7/27
2017

QR 码解析算法

检测定位符流程

  • 横向扫描,检测 黑白黑白黑 的组合
  • 默认隔(3 * maxI) / (4 * MAX_MODULES)行扫描一次,TRY_HARDER开启后逐行扫描
  • 验证是否满足1:1:3:1:1的比例
  • 检测纵向是否满足定位符特征
  • 如果已经确定了两个定位符,则可跳过 (Math.abs(firstConfirmedCenter.getX() - center.getX())-Math.abs(firstConfirmedCenter.getY() - center.getY())) / 2; 行,继续扫描
  • 如果提前确定3个定位符,且模块大小相近,则停止扫描 haveMultiplyConfirmedCenters()
  • 否则继续扫描图片
  • 筛选掉和其他相差较大的定位符,选择匹配最好的3个定位符
  • 确定三个定位符的中心坐标和各自位置 orderBestPatterns()
  • 返回检测到的三个定位符的结果