python ssl模块用法详解_python模块: urllib模块详解 !!

a07c0f89dc23d02c76e9faac25eece0a.png

前言

相信大家在做一个Python项目的时候,肯定会用到模块,就想JAVA会用到JAR包一样,这样会让我们的开发更高效和更简洁,本节为大家介绍一个URLlib模块

在python中urllib模块提供上层接口,可以使用它下载读取数据,这里举个例子,把sina首页的html抓取下来显示出来.有2种方法可以实现.

1.urlopen(url, data=None, proxies=None)
    urlopen(url [, data]) -> open file-like object

创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据。参数url表示远程数据的路径,一般是网址;参数data表示以post方式提交到url的数据;参数proxies用于设置代理.urlopen返回一个类文件对象.

#!/usr/bin/python2.5
import urllib

url = "http://www.sina.com"
data = urllib.urlopen(url).read()
print data
root@10.1.6.200:~# python gethtml.py 
<!Doctype html>
<!--[30,131,1] published at 2013-04-11 23:15:33 from #150 by system-->
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=gb2312" />
    <title>тK˗ҳ</title>

    <meta name="keywords" content="тK,тKθ,SINA,sina,sina.com.cn,тK˗ҳ,ą»§, Ѷ" />
....

2 urlretrieve(url, filename=None, reporthook=None, data=None)

urlretrieve方法直接将远程数据下载到本地。参数filename指定了保存到本地的路径(如果未指定该参数,urllib会生成一个临时文件来保存数据);参数reporthook是一个回调函数,当连接上服务器.以及相应的数据块传输完毕的时候会触发该回调.

#!/usr/bin/python2.5
import urllib

url = "http://www.sina.com"
path = "/root/sina.txt"
data = urllib.urlretrieve(url,path)
root@10.1.6.200:~# python getsina.py 
root@10.1.6.200:~# cat sina.txt 
<!Doctype html>
<!--[30,131,1] published at 2013-04-11 23:25:30 from #150 by system-->
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=gb2312" />
    <title>тK˗ҳ</title>

    <meta name="keywords" content="тK,тKθ,SINA,sina,sina.com.cn,тK˗ҳ,ą»§, Ѷ" />
....

不仅如此,这里写个爬虫小程序,可以把百度贴吧http://tieba.baidu.com/p/2236567282网页上的jpg图片依次下载下来.

root@10.1.6.200:~# cat getJpg.py 
#!/usr/bin/python2.5

import re
import urllib

def getHtml(url):
    html = urllib.urlopen(url).read()
    return html

def getJpg(html):
    reg = r'src="(http://.*?.jpg)"'
    imgre = re.compile(reg)
    imgList = re.findall(imgre,html)
    x = 0
    for imgurl in imgList:
        urllib.urlretrieve(imgurl,'%s.jpg' % x)
        x += 1       

html = getHtml("http://tieba.baidu.com/p/2236567282")
getJpg(html)
root@10.1.6.200:~# python 11.py 
root@10.1.6.200:~# ls -l
total 1680
-rw-r--r-- 1 root root  38695 2013-04-11 23:32 0.jpg
-rw-r--r-- 1 root root  48829 2013-04-11 23:32 10.jpg
-rw-r--r-- 1 root root  51835 2013-04-11 23:32 11.jpg
-rw-r--r-- 1 root root  41688 2013-04-11 23:32 12.jpg
-rw-r--r-- 1 root root   1077 2013-04-11 23:32 13.jpg
-rw-r--r-- 1 root root  33989 2013-04-11 23:32 14.jpg
-rw-r--r-- 1 root root  41890 2013-04-11 23:32 15.jpg
-rw-r--r-- 1 root root  35728 2013-04-11 23:32 16.jpg
-rw-r--r-- 1 root root  44405 2013-04-11 23:32 17.jpg
-rw-r--r-- 1 root root  29847 2013-04-11 23:32 18.jpg
-rw-r--r-- 1 root root  44607 2013-04-11 23:32 19.jpg
-rw-r--r-- 1 root root  23939 2013-04-11 23:32 1.jpg
-rw-r--r-- 1 root root  45592 2013-04-11 23:32 20.jpg
-rw-r--r-- 1 root root  60910 2013-04-11 23:32 2.jpg
-rw-r--r-- 1 root root  39014 2013-04-11 23:32 3.jpg
-rw-r--r-- 1 root root  19057 2013-04-11 23:32 4.jpg
-rw-r--r-- 1 root root  64584 2013-04-11 23:32 5.jpg
-rw-r--r-- 1 root root  29297 2013-04-11 23:32 6.jpg
-rw-r--r-- 1 root root  39145 2013-04-11 23:32 7.jpg
-rw-r--r-- 1 root root   1059 2013-04-11 23:32 8.jpg
-rw-r--r-- 1 root root  44797 2013-04-11 23:32 9.jpg
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值