[项目实训]Python正则表达式和Re库
2017-05-07 19:46
239 查看
正则表达式
定义:正则表达式是用来简洁表达一组字符串的表达式
例:匹配IP地址的正则表达式
IP地址字符串形式的正则表达式(IP地址分4段,每段0‐255)\d+.\d+.\d+.\d+或
\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}
精确写法
0‐99:[1‐9]?\d
100‐199:1\d{2}
200‐249:2[0‐4]\d
250‐255:25[0‐5]
(([1‐9]?\d|1\d{2}|2[0‐4]\d|25[0‐5]).){3}([1‐9]?\d|1\d{2}|2[0‐4]\d|25[0‐5])
Re库
raw string类型(原生字符串类型)
re库采用raw string类型表示正则表达式,表示为:r'text'
例如:
r'[1‐9]\d{5}'r'\d{3}‐\d{8}|\d{4}‐\d{7}'
raw string是不包含对转义符再次转义的字符串
实例:淘宝定向爬虫
定义:正则表达式是用来简洁表达一组字符串的表达式
例:匹配IP地址的正则表达式
IP地址字符串形式的正则表达式(IP地址分4段,每段0‐255)\d+.\d+.\d+.\d+或
\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}
精确写法
0‐99:[1‐9]?\d
100‐199:1\d{2}
200‐249:2[0‐4]\d
250‐255:25[0‐5]
(([1‐9]?\d|1\d{2}|2[0‐4]\d|25[0‐5]).){3}([1‐9]?\d|1\d{2}|2[0‐4]\d|25[0‐5])
Re库
raw string类型(原生字符串类型)
re库采用raw string类型表示正则表达式,表示为:r'text'
例如:
r'[1‐9]\d{5}'r'\d{3}‐\d{8}|\d{4}‐\d{7}'
raw string是不包含对转义符再次转义的字符串
实例:淘宝定向爬虫
import requests import re import sys def getHTMLText(url): try: r = requests.get(url,timeout=30) r .raise_for_status() r.encoding = r.apparent_encoding return r.text except: return "" def parsePage(ilt,html): try: plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"',html) tlt = re.findall(r'\"raw_title\"\:\".*?\"',html) for i in range(len(plt)): price = eval(plt[i].split(':')[1]) title = eval(tlt[i].split(':')[1]) ilt.append([price,title]) except: print("") def printGoodsList(ilt): tplt = "{:4}\t{:8}\t{:16}" print(tplt.format("序号","价格","商品名称")) count = 0 for g in ilt: count = count + 1 print(tplt.format(count,g[0],g[1])) def main(): print(sys.getdefaultencoding()) goods = '书包' depth = 2 start_url = 'http://s.taobao.com/search?q=' + goods infoList = [] for i in range(depth): try: url = start_url + '&s=' + str(44*i) html = getHTMLText(url) parsePage(infoList,html) except: continue print(len(infoList)) printGoodsList(infoList) main()
相关文章推荐
- python——爬虫学习——正则表达式与Re库-(4)
- python正则表达式与Re库
- 从零开始写Python爬虫 --- 1.4 正则表达式:re库
- python爬虫由浅入深8---正则表达式及Re库的基础与使用
- 比较详细Python正则表达式操作指南(re使用)
- 转载:Python正则表达式的用法(1. 匹配)
- 转载:Python正则表达式的用法(2. 替换;3.拆分)
- 正则表达式语法 (转,开发项目一定要看,用到正则表达式的地方很多的)
- Python用re(正则表达式)模块过滤Telnet字体颜色
- Python正则表达式的用法(2. 替换;3.拆分)
- Python正则表达式(一)
- Python天天美味(15) - Python正则表达式操作指南(re使用)(转)
- python正则表达式操作指南[转载]
- python正则表达式分析新浪网天气预报,通过pyfetion发送短信的代码
- Python 正则表达式操作指南
- 比较详细Python正则表达式操作指南(re使用)
- python中的一些正则表达式的含义
- Python正则表达式操作指南
- Python正则表达式操作指南
- Python正则表达式操作指南