正则表达式学习笔记
正则表达式学习笔记
前言
正则表达式(英语:Regular Expression,常简写为 regex、regexp 或 RE),又称正则表示式、正则表示法、规则表达式、常规表示法,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。
简单来说,正则表达式就是做了这么一个事情:制定一个规则,而后根据规则去文本中寻找符合规则的字符串。
它可以从一个基础字符串中根据一定的匹配模式替换文本中的字符串、验证表单、提取字符串等等。
在介绍正则表达式之前,首先推荐几个用于在线练习、测试正则表达式的网站:
https://regex101.com/
https://deerchao.cn/tools/wegester/
基本匹配
首先,让我们从一个简单的例子入手,想象一个场景,我们有一段文章,想要找到其中所有的 hello,那么我们就可以使用正则表达式 hello 实现。
让我们来看看这个正则表达式 hello,它表示一个规则:由字母 h 开始,接着是 e, l, l, o。
...
爬虫简单实践之 wallhaven
爬虫简单实践之 wallhaven
前言
闲来无事,简单写了一个爬虫,功能也很简单,就是爬取 wallhaven 上的图片。
阅读之前,如果你对爬虫感到陌生,你也可以点击 这里 在我的另一篇文章中快速、了解掌握爬虫。
爬虫思路
根据 url 的规律指定爬取页面
简单观察 url 便可以发现,规律很简单,只需要指定页面即可。
1https://wallhaven.cc/toplist?page=
解析 html 获得当前页面所有图片 url
接下来我们观察 html 结构
很显然,我们需要的链接在一个 a 标签中,且 class=preview,那么,我们便可以通过 find_all('a', class_='preview') 命令找到所有的 url。
注意上面的另一个 url 是小图,如果你不关心图片尺寸,那么可以直接使用它。
进入图片之后,再次解析 html 获得原始图片的 url
得到图片的 url 之后,我们再次 get ,进入图片页面,再次解析 html,观察结构
同样的,我们发现原始图片的链接在一个 img 标签中,且 id=wallpaper,链接在 src 之中,用 ...
python 爬虫学习笔记
python 爬虫学习笔记
前言
网络爬虫(又称为网页蜘蛛,网络机器人,在 FOAF 社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
爬虫,说白了其实就是一段自动抓取互联网信息的程序,它不需要我们自己手动一个一个地打开网站搜索信息,我们只需要制定规则,就可以让程序按照规则自动获取信息。
在学习如何使用爬虫前,你仍需要具备一定的基础知识:
python 基本功
HTML 知识
HTTP 请求 GET、POST
正则表达式
F12 开发者工具
掌握上面的这些知识能够帮助你快速理解与掌握,当然,上面的这些除了第一点 python 基本功外,只需要先了解,然后通过具体项目来不断实践即可。
使用 requests 库请求网站
尽管有许多类似的工具,但在 python 中 requests 往往是绝大多数人的第一选择。类似的,你可以使用如下命令安装 requests 库:
1pip install requests
基本请求
requests 库能够方便的让我们进行所有 HTTP 请求,在 中文文档 中有这样一个示例:
1234import ...
Python 之 tkinter 学习笔记
Python 之 tkinter 学习笔记
前言
最近有个小需求需要实现,最后要给出一个 GUI 界面,想了想还是不用 c++ 写 MFC 了,因为还涉及到网络编程,感觉还是简单事情简单做,然后转手写 python,刚开始想尝试 pyqt,但感觉好像还是有点麻烦,本来就只是做个插件,最后就大概看了一下内置的 tkinter,一边写一边学也马上就上手了,总的来说感觉还是简单的。
tkinter 简介
Tkinter 是 Tk GUI 工具包的 Python 绑定包。它是 Tk GUI 工具包的标准 Python 接口,并且是 Python 的业界标准 GUI 工具包。
创建一个窗口
由于 python 内置了 tkinter 因此我们不需要安装额外的库,直接导入即可
1import tkinter as tk
下面是一个简单的示例,它创建了一个窗口,设置窗口标题,并设置窗口大小和位置
12345678910111213import tkinter as tk# 创建一个窗口实例window = tk.Tk()# 设置窗口标题window.title('my_window ...
CTP 学习笔记
CTP 学习笔记
前言
综合交易平台(Comprehensive Transaction Platform,CTP)是专门为期货公司开发的一套期货经纪业务管理系统,由交易、风险控制和结算三大系统组成。
前后研究了两个多星期 CTP,各种查资料,感觉总算是基本搞清楚了 CTP 是个什么东西(鬼知道我为什么要搞 CTP),说多了都是泪。本文主要通过对 CTP 简单案例的实现,对 CTP 进行简单的讲解,以及本人学习过程中遇到的一些坑。
下载安装
你可以在 上期技术官网 里面下载最新的 API 接口以及说明文档,或者也可以在 simnow 官网 下载,都是一样的,只不过上期技术官网会时不时抽风。
下载完成之后,我们得到了下面这些文件,以 win64 为例:
1234567891011121314151617// 结构类型定义ThostFtdcUserApiStruct.h // 定义了客户端接口使用的业务数据结构ThostFtdcUserApiDataType.h // 定义了客户端接口使用的业务数据类型// 行情部分ThostFtdcMdApi.h ...
定时启动关闭程序以及 C++ 相关时间函数
定时启动关闭程序以及 C++ 相关时间函数
前言
最近在做项目的过程中需要实现定时启动/关闭程序的功能,网上查资料的过程中,发现大多都是通过 windows 创建计划任务的方式实现程序的定时启动,或者是通过写 bat 配合 sleep 关闭程序,感觉都不太行,最后还是采用了通过 C++ 写了一个监控窗口方式实现,在这里简单记录一下爬坑的过程。
启动/关闭程序
一开始只是想通过写一个 bat 脚本来实现启动、关闭程序,但发现还是不怎么靠谱,辗转之后还是通过 c++ 的 system 来实现。
总的来说,代码也很简单,就是命令行,实现如下:
1system("start .\\Control.exe ");
在这里,命令打开了当前目录下一个名为 Control.exe 的程序,就像在 terminal 中一样。
这里有个问题需要注意:
如果直接写 system(".\\Control.exe "); 的话也可以执行程序,但是对于控制台程序来说,新打开的程序会在当前的黑框框中执行,如果你的程序不会自动关闭,那么也就无法通过监控窗口来关闭它。
更好的做法 ...
Python 实用库必备速查表
图源:https://www.datacamp.com/community/data-science-cheatsheets
前言
除了官网,你也可以 点击这里 下载全部 PDF 和 JPG 文件
numpy
numpy 是使用 Python 进行科学计算的基础软件包。是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库
matplotlib
matplotlib 是一个 Python 的 2D 绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。
pandas
pandas 是一个强大的分析结构化数据的工具集;它的使用基础是 Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。
SciPy
Scipy 是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。
Keras
Keras: 基于 Python 的深度学习库
Keras 是一个用 Python 编写的高级神经网络 API,它能够以 Ten ...
Numpy 学习笔记
Numpy 学习笔记
前言
NumPy 是 Python 中科学计算的基础包。它是一个 Python 库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种 API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。
在学习 numpy 之前,你总得在 python 上装上 numpy 吧,安装命令非常简单:
1pip install numpy
安装完成之后,只需要这样:
1import numpy
当然更多人的选择是这样,简单一点总是友好的。
1import numpy as np
一个例子
123456789101112>>> import numpy as np>>> a = np.arange(15).reshape(3,5)>>> aarray([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]])>>> a.s ...
pip & conda 换源
pip & conda 换源
前言
在使用 pip 和 conda 命令安装包时,由于服务器在国外,往往会出现超时的问题,国内下载速度非常慢,体验并不友好。解决办法就是把源换成国内的,如清华、阿里、豆瓣。
pip 换源
临时换源
如果想要临时更换 pip 源,则可以在相应的 pip 命令调用时,在命令的最后加上:
1pip install xxxx -i https://pypi.tuna.tsinghua.edu.cn/simple
永久换源
Windows 下,直接在 user 目录中创建一个 pip 目录,如:C:\Users\xx\pip,新建文件 pip.ini,内容如下:
1234[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple[install]trusted-host=pypi.tuna.tsinghua.edu.cn
linux 下,修改 ~/.pip/pip.conf (没有就创建一个),内容同上。
国内的其他一些镜像:
阿里源 http://mirrors.aliyun.com/pyp ...
K-means 学习笔记
K-means 学习笔记
前言
K-means 算法是最为经典的基于划分的聚簇方法,是经典数据挖掘算法之一。简单的说就是在没有任何监督信号的情况下将数据分为 K 份的一种方法, 也就是分门别类。
K-means 算法
算法原理
基本思想:
给定 K 值和 K 个初始类中心点,把每个点分到离其最近的类中心点所代表的类中,所有点分配完毕之后,根据一个类内的所有点重新计算该类的中心点(平均值),然后再迭代的进行分配点和更新类中心点的步骤,直至类中心点的变化很小,或者达到指定的迭代次数。
对一个样本集 D=x1,x2,⋯ ,xnD={x_1,x_2,\cdots,x_n}D=x1,x2,⋯,xn, 这里每个 x 都有 m 个维度的属性, 我们想要将其划分为 k 个聚类
首先,我们从样本集 D 中随机获取 k 个样本作为初始类中心点 c1,c2,⋯ ,ck{c_1,c_2,\cdots,c_k}c1,c2,⋯,ck
然后计算每一个对象到每一个聚类中心的欧式距离:
dis(xi,cj)=∑t=1m(xi,t−cj,t)2dis(x_i,c_j) =\sqrt{\sum_{t=1} ...