Amazing Pi



阅读全文 »


Python 性能分析工具 cProfile



一般看看 py 脚本的性能, 可以使用古老的 linux 工具 time, 或者自己在代码中写上 time.clock().

➜  codewars  time python3 xingneng.py
python3 xingneng.py  4.64s user 0.02s system 99% cpu 4.698 total

这样粒度比较粗超, 进一步的分析可以借助标准库中的三个分析模块: cProfile profile hotshot.

python3中, hotshot已经被废弃了, 如果没有特殊需求, 建议使用 cProfile. 本文简单介绍下使用 gprof2dotcProfile 分析 python 脚本性能.

阅读全文 »


Python 爬虫解析器之 Beautiful Soup



Beautiful Soup 是 html/xml 的 python 解析器, 可以定位 DOM 元素信息.

该工具在爬虫阶段 中, 处于解析网页阶段, 可以简化正则表达式, 简单示例:

>>> from bs4 import BeautifulSoup as BS
>>> from urllib.request import urlopen
>>> soup = BS(urlopen('https://www.alipay.com/'))
>>> soup.title
<title>支付宝 知托付!</title>

1. 安装

pip 安装

pip install beautifulsoup4

阅读全文 »


Python 简单爬虫



什么是爬虫


爬虫指的系统性抓取网络页面的网络机器人。原理图如下:

crawler

上图涉及了爬虫的任务调度控制,多线程,存储机制等,本文不会涉及。

阅读全文 »


近期笔记



网商工具平台 将近期Coding时需要谷歌的点,记录一下,主要是 Python Flask Jquery 方面

Python

Python 正则

Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。

正则表达式实例

  1. 字符类
实例 描述
[Pp]ython 匹配 “Python” 或 “python”
rub[ye] 匹配 “ruby” 或 “rube”
[aeiou] 匹配中括号内的任意一个字母
[0-9] 匹配任何数字。类似于 [0123456789]
[a-z] 匹配任何小写字母
[A-Z] 匹配任何大写字母
[a-zA-Z0-9] 匹配任何字母及数字
[^aeiou] 除了aeiou字母以外的所有字符
[^0-9] 匹配除了数字外的字符
  1. 特殊字符类
实例 描述
. 匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使用象 ‘[.\n]’ 的模式
\d 匹配一个数字字符。等价于 [0-9]
\D 匹配一个非数字字符。等价于 [^0-9]
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]
\w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’
\W 匹配任何非单词字符。等价于 ‘[^A-Za-z0-9_]’  

re.match && re.search

re.match(pattern, string, flags=0)

re.search(pattern, string, flags=0)

阅读全文 »