正则学习:简单的Python小爬虫
2015-11-24 12:06
295 查看
0×00 背景
在网上找了一点关于Python的内容,一直以来没怎么学习Python的正则以及Urllib模块,通过学习写了一个最简单的Python小爬虫(用来批量下载某网页上的所有图片),不为实用,只为学习一点Python的内容,以重燃自己的学习欲望。0×01 正则表达式
正则表达式凡是接触编程的人,应该都了解正则的高端之处吧,我这里不做赘述,因为我也不是特别懂,只是列举一些简单常用的而已。正则表达式由两种字符组成,一种是基本字符,一种是元字符,元字符如下面:
. 匹配除 \n 以外的任何字符(注意元字符是小数点) * 匹配0个或者以上的任意字符 \ 转义字符 [abcde] 匹配 abcde 之中的任意一个字符 [a-h] 匹配 a 到 h 之间的任意一个字符 \w 匹配大小写英文字符及数字 0 到 9 之间的任意一个及下划线,相当[a-zA-Z0-9_] \d 匹配任何 0 到 9 之间的单个数字,相当于 [0-9]
常用的大概也就这几个,大家有什么需求可以直接百度,详细的介绍很多。
0×02 Python中的正则函数
Python中提供了不少关于正则的方法,这些方法都处于re模块中,使用前先引用re模块,其中最常用的方法有这么几个,列个表给大家:方法/属性 | 作用 |
---|---|
match() | 决定RE是否在字符串刚开始的位置匹配 |
search() | 扫描字符串,找到这个RE匹配的位置 |
findall() | 找到RE匹配的所有子串,并把他们作为一个列表返回 |
finditer() | 找到RE匹配的所有子串,并把他们作为一个迭代器返回 |
compile() | 对定义好的正则进行编译 |
0×03 urllib模块
Urllib模块是python中的网络模块,该模块是用来对指定url进行一些操作,具体可以自行百度,这里同样列举几个本例子需要用到的方法。方法/属性 | 作用 |
---|---|
urlopen() | 获取指定url的内容 |
read() | 读取指定url的内容 |
urlretrieve() | 将远程数据下载到本地 |
0×04 示例代码
这个示例代码是用来批量下载某页面上的所有图片,废话不说,直接上代码:import re import urllib def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImg(html): reg = r'src="(.*?\.jpg)" pic_ext' imgre = re.compile(reg) imglist = re.findall(imgre, html) return imglist def dowImg(imglist): x = 1 for imgurl in imglist: urllib.urlretrieve(imgurl, '%s.jpg' % x) x+=1 url = "http://tieba.baidu.com/p/2579724416" html = getHtml(url) imglist = getImg(html) dowImg(imglist)
http://www.2liang.me/archives/27#more-27
相关文章推荐
- 八大排序算法的Python实现
- [python]标准比较运算符
- Python刷题笔记(5)- 秒转化为时间
- python 列表解析
- Python yield与实现
- python 列举文件夹下文件并排序
- python stdout 重定向
- 用 Python 和 OpenCV 检测图片上的条形码
- Python 绘制 误差 箱线图 error boxplot
- python美女图片抓取
- 学习Python(四)
- python之路第五篇之递归(进阶篇:续:经典例子剖析)
- python入门(4)
- Python中time模块与datetime模块在使用中的不同之处
- python-04:接下来做什么
- python-06:爬虫基础知识
- python-07:最简单的爬虫程序
- python-08:理解最简单的爬虫程序
- python-09:第一个实践-爬取糗事百科段子
- python-10:将网页源码爬取下来