urllib是python自带库,不要专门安装,还挺好用的。

脚本语言的好处之一就是随写随用,有些东西用C语言写真的是能把人累死,换成python就是几行代码,so easy,对于喜欢偷懒的同学绝对是上帝的礼物~~~

目前我用到的两个常用函数是urlopen, read,  urlretrieve这三个函数,讲一下简单的功能,看其他的请移步https://docs.python.org/2/library/urllib.html#urllib.urlopen。

urlopen函数可以用来打开http的网页链接,挺好用的,然后read函数能够直接获取html文本。样例脚本如下:

 import urllib

 url_obj = urllib.urlopen ( 'http://www.cnblogs.com/' )
htmlfile = url_obj.read ()

代码只有2行,第一行是打开这个网站,第二行是直接获取html的文件,操作流程很简单,有这个基础,组织下数据存储,搞个网页爬虫的基础就有了。

然后在网上看了下,有这样一段代码,用来扒网站上图片的:

 #coding=utf-8
import urllib
import re 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)
x = 0
for imgurl in imglist:
urllib.urlretrieve(imgurl,'%s.jpg' % x)
x+=1
return x html = getHtml("http://tieba.baidu.com/p/2460150866") print getImg(html)

上面这段示例代码水平写得挺不错的,应该是经常使用python的高手写的,没什么多余的东西,刀刀入肉。python网站上写的这个函数介绍。

Python-urllib学习记录-LMLPHP

在urlretrieve函数中如果只传入两个参数,那么第二个参数将作为文件名,保存在python脚本文件所在的路径下。应该也是支持绝对路径的。试验了一下,确实支持。

Python-urllib学习记录-LMLPHP

研究了下这个函数的入参格式,也是http\https格式开头的url:

Python-urllib学习记录-LMLPHP

然后看了下代码的格式,写正则表达式的时候,用了(),应该是通过这个取出来的,python的正则表达式之前用过,已经过去好久了。

Python-urllib学习记录-LMLPHP

05-17 04:27