python模块: urllib模块详解 !!
前言
相信大家在做一个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
<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
<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
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
代码缺少一块?在vim里面使用tab进行代码补全
前言Pydiction 允许你在 Vim 中实现 TAB 代码补全, 可以补全的内容包括:标准的、自定义的,以及第三方模块和包。外加关键字、BIFs,和字符串。 Pydiction 由 3 个主要文件构成: python_pydiction.vim -- 该文件为 Vim 的 plugin 文件,实现 Python 文件的 TAB 补全功能。 complete-dict -- 该文件为 Vim 的 dictionary 文件,其中包含 Python 关键字和模块结构等信息。是 plugin 进行补全时所查找的参考文件。 pydiction.py -- (可选)该文件是 Python script 文件,用于生成 dictionary 文件。可以通过执行该脚本添加更多的可 TAB 补全模块。 用法 在 Vim 中输入部分 Python 关键字、模块名、属性或方法名,然后按 Tab 键以弹出补全信息。 例如, 输入 os.p<Tab> 会弹出 os.pardir os.path os.pathconf( os.pathconf_names os.pathsep os.pipe(...
- 下一篇
你想了解Python中的 == 和IS 其他?
前言 比较对象值时使用 == 等逻辑操作符,比较的是对象的值;比较对象身份时使用 is 和 is not 操作符,比较的是对象的本身,即可理解为对象的地址,该地址可以由id()函数获得。 理解过程中可以类比 C 语言中变量的比较,例如对于变量 a 和 b,比较值相当于 a == b,比较身份相当于 &a == &b,即对两个变量分别取地址,之后比较这两个地址。 Python 中使用大量使用引用赋值。通过 b = a 的操作,C 语言中是将 a 的值赋给 b,两个变量的地址不同;Python 中则通过引用赋值,直接使 b 和 a 指向相同的地址,这样就可以复用内存,使得存储更高效。 不过在使用过程中,对于不可改变类型,或者表述为“标量存储类型”,这个操作对于用户是透明的,即对于用户来说相当于普通复制赋值,如下。使用 b = a 赋值后,可以看到,两个变量的 id 是相同的,即内存中地址相同。改变 b 的值后可以看到,系统自动给 b 分配了新的地址空间,改变 b 并没有引起 a 的改变。 >>> a = 1 >>> b = a >&...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Hadoop3单机部署,实现最简伪集群