Python 使用urlib下载美空网页的模特照片
来源:互联网 发布:linux shell怎么退行 编辑:程序博客网 时间:2024/04/29 06:23
平时在实验室写程序,眼睛盯着显示屏眼睛都晃瞎了,没事的时候看看美女图片,不仅可以缓解视觉疲劳,还有益身心健康。哈哈。于是想起到美空(MOKO)下载点图片收藏一下。
于是想到用Python来下载一些图片。
本次主要使用三个库,urllib,urllib2 ,re,前2个用户获取URL对应的HTML文件,re为正则相关的库,可以用于在HTML中匹配查找图片的下载地址。
urllib 和urllib2都是接受URL请求的相关模块,但是提供了不同的功能。两个最显著的不同如下:
1.urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。这意味着,你不可以伪装你的User Agent字符串等。
2.urllib提供urlencode方法用来GET查询字符串的产生,而urllib2没有。这是为何urllib常和urllib2一起使用的原因。
首先,分析美空某一页面的HTML代码,找出图片的链接信息:
发现图片链接格式 <img src2=”http://...........jpg“将此链接复制到浏览器,就可以看到图片的源文件,因此正则表达式可以表示为 :repat1 = re.compile(r'<img src2="(http.*\.jpg)"')
</pre><pre class="python" name="code">#encoding=utf-8#http://www.moko.cc/post/1090149.htmlimport urllib,urllib2,re#美空的某一个页面url ='http://www.moko.cc/post/1090030.html'#启动连接con = urllib2.urlopen(url)#读取页面数据html = con.read()#正则表达式,提取图片链接#repat1 = re.compile(r'<img src2="(http.*\.jpg)" title="(.*)" alt')repat1 = re.compile(r'<img src2="(http.*\.jpg)"')result = re.findall(repat1,html)print '+++++++++++++++++++++++++++++++++'#依次打印用正则匹配到的图片链接for ones in result: #print ones[0],ones[1] print ones
运行后的控制台输出:
由上面的截图可以看出:我们已得到了图片的源文件地址,下一步就是下载了。
urllib 模块提供的 urlretrieve() 函数。urlretrieve() 方法直接将远程数据下载到本地。
urlretrieve(url, filename=None, reporthook=None, data=None)
- 参数 finename 指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)
- 参数 reporthook 是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。
- 参数 data 指 post 到服务器的数据,该方法返回一个包含两个元素的(filename, headers)元组,filename 表示保存到本地的路径,header 表示服务器的响应头。
查看本地文件夹中的图片:
看到了吧,图片下载下来啦。。。。。。。
- Python 使用urlib下载美空网页的模特照片
- urlib在python3的使用
- Python学习笔记-1、Python3的urlib.request和bs4.BeautifulSoup使用
- Python urlib模块学习
- python-urlib模块
- Python urlib vs urlib2
- Python使用urlib添加头部实现https请求 同时使用PyExecJS-1.4.0触发JS
- 在python中使用多线程下载网页
- 使用Python访问并下载网页内容
- 使用Python访问并下载网页内容
- 使用Python访问并下载网页内容
- 使用美丽景观照片的大背景网页设计
- Python学习之常用内置模块:urlib
- Python 下载网页的几种方法
- python下载网页上的flash
- Python 下载网页的几种方法
- Python的网页下载器:urllib2.urlopen
- [python][urllib] 下载网页上的图片
- 白话经典算法系列之七 堆与堆排序
- SQL Server 数据类型映射 (ADO.NET)
- C语言剖析OC的rangeOfString方法
- 自定义View之组合自定义控件
- 超赞!8个jQuery焦点图动画赏析
- Python 使用urlib下载美空网页的模特照片
- 用Verilog HDL编写的8位跑马灯程序,附Basys2——ucf仿真程序
- 【USACO4.2.3】工序安排 附带官方题解翻译
- 快速排序法
- Fragment 实现日期导航条
- 2015/5/12
- 长久网络
- Gvim 和vim 有什么区别
- RabbitMQ消息队列(三):任务分发机制[转]