转自http://www.cnblogs.com/fnng/p/3576154.html

 在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。

  我们最常规的做法就是通过鼠标右键,选择另存为。但有些图片鼠标右键的时候并没有另存为选项,还有办法就通过就是通过截图工具截取下来,但这样就降低图片的清晰度。好吧~!其实你很厉害的,右键查看页面源代码。

  我们可以通过python 来实现这样一个简单的爬虫功能,把我们想要的代码爬取到本地。下面就看看如何使用python来实现这样一个功能。

一,获取整个页面数据

首先我们可以先获取要下载图片的整个页面信息。

getjpg.py

#coding=utf-8
import urllibdef getHtml(url):page = urllib.urlopen(url)html = page.read()return htmlhtml = getHtml("http://tieba.baidu.com/p/2738151262")print html

  Urllib 模块提供了读取web页面数据的接口,我们可以像读取本地文件一样读取www和ftp上的数据。首先,我们定义了一个getHtml()函数:

  urllib.urlopen()方法用于打开一个URL地址。

  read()方法用于读取URL上的数据,向getHtml()函数传递一个网址,并把整个页面下载下来。执行程序就会把整个网页打印输出。

二,筛选页面中想要的数据

  Python 提供了非常强大的正则表达式,我们需要先要了解一点python 正则表达式的知识才行。

http://www.cnblogs.com/fnng/archive/2013/05/20/3089816.html

假如我们百度贴吧找到了几张漂亮的壁纸,通过到前段查看工具。找到了图片的地址,如:src=”http://imgsrc.baidu.com/forum......jpg”pic_ext=”jpeg”

修改代码如下:

import re
import urllibdef getHtml(url):page = urllib.urlopen(url)html = page.read()return htmldef getImg(html):reg = r'src="(.+?\.jpg)" pic_ext'imgre = re.compile(reg)imglist = re.findall(imgre,html)return imglist      html = getHtml("http://tieba.baidu.com/p/2460150866")
print getImg(html)

  我们又创建了getImg()函数,用于在获取的整个页面中筛选需要的图片连接。re模块主要包含了正则表达式:

  re.compile() 可以把正则表达式编译成一个正则表达式对象.

  re.findall() 方法读取html 中包含 imgre(正则表达式)的数据。

   运行脚本将得到整个页面中包含图片的URL地址。

三,将页面筛选的数据保存到本地

把筛选的图片地址通过for循环遍历并保存到本地,代码如下:

#coding=utf-8
import urllib
import redef getHtml(url):page = urllib.urlopen(url)html = page.read()return htmldef getImg(html):reg = r'src="(.+?\.jpg)" pic_ext'imgre = re.compile(reg)imglist = re.findall(imgre,html)x = 0for imgurl in imglist:urllib.urlretrieve(imgurl,'%s.jpg' % x)x+=1html = getHtml("http://tieba.baidu.com/p/2460150866")print getImg(html)

  这里的核心是用到了urllib.urlretrieve()方法,直接将远程数据下载到本地。

  通过一个for循环对获取的图片连接进行遍历,为了使图片的文件名看上去更规范,对其进行重命名,命名规则通过x变量加1。保存的位置默认为程序的存放目录。

程序运行完成,将在目录下看到下载到本地的文件。

python实现简单爬虫功能(网站图片)相关推荐

  1. c语言实现爬虫功能,用C/C 扩展Python语言_python 调用c语言 python实现简单爬虫功能_python实现简单爬虫...

    用C/C 扩展Python语言 Python是一门功能强大的脚本语言,它的强大不仅表现在功能上,还表现在其扩展性上.她提供大量的API以方便程序员利用C/C++对Python进行扩展.因为执行速度慢几 ...

  2. python 爬虫程序示例,python实现简单爬虫功能的示例

    在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材. 我们最常规的做法就是通过鼠标右键,选择另存为.但有些图片鼠标右键的 ...

  3. python秒懂百科视频,Python开发简单爬虫

    Python开发简单爬虫 源码网址:  http://download.csdn.NET/detail/hanchaobiao/9860671 一.爬虫的简介及爬虫技术价值 1.什么是爬虫: 一段自动 ...

  4. Python开发简单爬虫 - 慕课网

    课程链接:Python开发简单爬虫 环境搭建: Eclipse+PyDev配置搭建Python开发环境 Python入门基础教程 用Eclipse编写Python程序 课程目录 第1章 课程介绍 1- ...

  5. imooc疯狂的蚂蚁《Python开发简单爬虫》源代码

    以下为imooc疯狂的蚂蚁<Python开发简单爬虫>源代码,调试有些问题. html_downloader.py import html_downloader import html_o ...

  6. python简易爬虫课程设计_python实现简单爬虫功能的示例

    在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材. 我们最常规的做法就是通过鼠标右键,选择另存为.但有些图片鼠标右键的 ...

  7. 有了代码怎么用python爬虫_python实现简单爬虫功能

    在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材. 我们最常规的做法就是通过鼠标右键,选择另存为.但有些图片鼠标右键的 ...

  8. python实现简单爬虫百度首页_python实现简单爬虫功能的示例

    在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材. 我们最常规的做法就是通过鼠标右键,选择另存为.但有些图片鼠标右键的 ...

  9. python实现简单爬虫抓取图片

    最近在学习python,正如大家所知,python在网络爬虫方面有着广泛的应用,下面是一个利用python程序抓取网络图片的简单程序,可以批量下载一个网站更新的图片,其中使用了代理IP的技术. imp ...

最新文章

  1. windows 2003 下oracle从10.2.0.1升级到10.2.0.4
  2. linux中 ln -s 软链接
  3. 【SpringBoot零基础案例09】【IEDA 2021.1】SpringBoot将核心配置文件中的自定义配置映射到一个对象
  4. 睡前必读 | 如何系统性地学习分布式系统?
  5. spdk-nvmf指南
  6. 均匀白噪声的定义及特点_噪声的物理本质是什么?
  7. Shell特殊变量:Shell $0,$#,$*,$@,$?,$$和命令行参数
  8. 微信公众号开发 [03] 结合UEditor实现图文消息群发功能
  9. LeetCode 1130. 叶值的最小代价生成树(区间DP/单调栈贪心)
  10. Linux查看已经开放的端口,开放端口遇到防火墙的问题。
  11. PowerBI功能发布时间线
  12. 实验2.4 使用系统函数pow(x,y)计算xy的值
  13. Go编程笔记(28)
  14. JSON 之 SuperObject(8): 关于乱码的几种情况 - 向 Henri Gourvest 大师报告
  15. python seaborn 散点图矩阵_初学pandas与seaborn(六)制作散点图矩阵,用python
  16. Google登陆集成笔记-含坑
  17. Android虚拟AB升级流程简述及升级完整log
  18. Foxmail添加163邮箱账号的方法
  19. excel拆分表格之多条件拆分
  20. WIN32 opengl环境搭建

热门文章

  1. Redis的各项功能解决了哪些问题?
  2. 解决ubuntu开机进入grub界面的问题
  3. mysql启动错误1067进程意外终止的解决方法
  4. html高度塌陷问题解决
  5. 定义指令时“控制器”,“链接”和“编译”函数之间的区别
  6. 表格内部的文本对齐类
  7. idea中的pom文件中的jar包下载不了,手动下载jar包的方法
  8. 【Python学习笔记】面向对象三大特性
  9. grunt 打包前端代码
  10. 公司项目NODEJS实践0.3[ mongo / session ...]