分类 Code 下的文章

使用 Python 轻松抓取网页

注:文章基于python3,路上通过这篇文章中的内容,写了20多行代码,实现定时抓取某网页某几个数据的目标

准备工作

要使用python抓取网页,可以使用两个包:requests用于下载网页,而BeautifulSoup则对网页进行结构化解析。如果你在电脑上安装了pip,则可以使用下面的命令下载安装这两个包:

pip install requests beautifulsoup4

或者按照引用文章1将两个包安装到虚拟环境。
(实际上路上通过分析发现,在路上的需求里,第二个包没有用到。。)

抓取网页

抓取网页及其简单,假如我要抓取「https://pip.pypa.io/en/stable/」这个网页,则使用:

import requests
response = requests.get(‘https://pip.pypa.io/en/stable/')

在函数返回后,就能从response.text中获得这个页面的文本数据(html或者其他文本)。

抓取数据后,使用BeautifulSoup对文本数据处理,便会得结构化的HTML,然后就可以利用BeautifulSoup强大的HTML处理能力抓取相关内容了。但是路上经过分析发现需要抓取的内容位于某xx.js文件内,是json变量。所以BeautifulSoup没能使用的上。。

使用python处理JSON内容

python原生支持JSON,使用json.loads(JSONdata)将JSON转换为xml,然后使用xml相关技术得到相关数据。具体步骤略去。
python处理JSON可以参见这篇文章

php中array_push的用法和注意事项

array_push用法

将一个或多个单元压入数组的末尾(入栈)
array_push() 将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加。
这里是php.net上的更多内容。

array_push注意事项

  1. 如果用 array_push() 来给数组增加一个单元,还不如用 $arrayXX[] = $dataXX,因为这样没有调用函数的额外负担。
  2. 对于关联数组的push,使用$data[$key] = $value;会更加方便

Matlab 分布检验以及相关性检验

  • 分布检验使用 lillietest 函数
  • 自相关使用xcorr函数
    c = xcorr(x,y) 返回矢量长度为$2*N-1$互相关函数序列,其中x和y的矢量长度均为N,如果x和y的长度不一样,则在短的序列后补零直到两者长度相等。
    c = xcorr(x) 为矢量x的自相关估计。
    c = xcorr(x,y,'option') 为有正规化选项的互相关计算;其中选项为"biased"为有偏的互相关函数估计;"unbiased"为无偏的互相关函数估计;"coeff"为0延时的正规化序列的自相关计算;"none"为原始的互相关计算。
  • 使用corrcoef函数可以求两个序列的相关度
    corrcoef(x,y)表示序列x和序列y的相关系数,得到的结果是一个2*2矩阵,其中对角线上的元素分别表示x和y的自相关,非对角线上的元素分别表示x与y的相关系数和y与x的相关系数,两个是相等的。

windows不给力,切换到Archlinux

最近windows下面的svchost.exe因为windows update的关系在内存方面兴风做浪,一开机就吃掉了1GB内存。令人抓狂,禁用了windows update服务之后还是觉得这个系统越来越不舒服。想想最近这段时间使用windows也仅仅是上网、收发邮件、coding/matlab之类的活,对文档的编辑也仅仅限于word之类,游戏什么都基本没有碰,所以好吧,我还是切换回archlinux吧。

目前想到的是,code用eclipse代替好了(php、android都可以嘛)、office自然libre-office啦,其他使用svn之类的同步windows和archlinux下面的代码,文档就直接挂载windows分区好了。

不过archlinux由于经常不升级,所以升级老是出现问题,现在apper已经不能用了,只能吃豆人一下。

资源:

  1. Archlinux 删除无用包 pacman -Rns $(pacman -Qdtq)