使用Python保存网页上的图片或者保存页面为截图


Posted in Python onMarch 05, 2016

Python保存网页图片
这个是个比较简单的例子,网页中的图片地址都是使用'http://。。。。.jpg'这种方式直接定义的。

使用前,可以先建立好一个文件夹用于保存图片,本例子中使用的文件夹是 d:\\pythonPath这个文件夹

代码如下:

# -*- coding: UTF-8 -*- 
import os,re,urllib,uuid 
 
#首先定义云端的网页,以及本地保存的文件夹地址 
urlPath='http://gamebar.com/' 
localPath='d:\\pythonPath' 
 
 
#从一个网页url中获取图片的地址,保存在 
#一个list中返回 
def getUrlList(urlParam): 
  urlStream=urllib.urlopen(urlParam) 
  htmlString=urlStream.read() 
  if( len(htmlString)!=0 ): 
    patternString=r'http://.{0,50}\.jpg' 
    searchPattern=re.compile(patternString) 
    imgUrlList=searchPattern.findall(htmlString) 
    return imgUrlList 
 
     
#生成一个文件名字符串  
def generateFileName(): 
  return str(uuid.uuid1()) 
 
   
#根据文件名创建文件  
def createFileWithFileName(localPathParam,fileName): 
  totalPath=localPathParam+'\\'+fileName 
  if not os.path.exists(totalPath): 
    file=open(totalPath,'a+') 
    file.close() 
    return totalPath 
   
 
#根据图片的地址,下载图片并保存在本地  
def getAndSaveImg(imgUrl): 
  if( len(imgUrl)!= 0 ): 
    fileName=generateFileName()+'.jpg' 
    urllib.urlretrieve(imgUrl,createFileWithFileName(localPath,fileName)) 
 
 
#下载函数 
def downloadImg(url): 
  urlList=getUrlList(url) 
  for urlString in urlList: 
    getAndSaveImg(urlString) 
     
downloadImg(urlPath)

保存的文件如下:

使用Python保存网页上的图片或者保存页面为截图

网页的一部分保存为图片
主要思路是selenium+phantomjs(中文网页需要设置字体)+PIL切图

def webscreen():
  url = 'http://www.xxx.com'
  driver = webdriver.PhantomJS()
  driver.set_page_load_timeout(300)
  driver.set_window_size(1280,800)
  driver.get(url)
  imgelement = driver.find_element_by_id('XXXX')
  location = imgelement.location
  size = imgelement.size
  savepath = r'XXXX.png'
  driver.save_screenshot(savepath)
  im = Image.open(savepath)
  left = location['x']
  top = location['y']
  right = left + size['width']
  bottom = location['y'] + size['height']
  im = im.crop((left,top,right,bottom))
  im.save(savepath)
Python 相关文章推荐
python在windows下创建隐藏窗口子进程的方法
Jun 04 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
Feb 18 Python
python读取txt文件并取其某一列数据的示例
Feb 19 Python
Python写一个基于MD5的文件监听程序
Mar 11 Python
python将类似json的数据存储到MySQL中的实例
Jul 12 Python
Python中一个for循环循环多个变量的示例
Jul 16 Python
python中栈的原理及实现方法示例
Nov 27 Python
pytorch的梯度计算以及backward方法详解
Jan 10 Python
Pygame的程序开始示例代码
May 07 Python
python 引用传递和值传递详解(实参,形参)
Jun 05 Python
如何在keras中添加自己的优化器(如adam等)
Jun 19 Python
Python用K-means聚类算法进行客户分群的实现
Aug 23 Python
Python发送form-data请求及拼接form-data内容的方法
Mar 05 #Python
Python多线程爬虫简单示例
Mar 04 #Python
使用Python来开发Markdown脚本扩展的实例分享
Mar 04 #Python
使用py2exe在Windows下将Python程序转为exe文件
Mar 04 #Python
用Python编写简单的微博爬虫
Mar 04 #Python
python相似模块用例
Mar 04 #Python
Python程序中用csv模块来操作csv文件的基本使用教程
Mar 03 #Python
You might like
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
默默小谈PHP&MYSQL分页原理及实现
2007/01/02 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
2016/10/10 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
CI框架实现创建自定义类库的方法
2018/12/25 PHP
一个用js实现的页内搜索代码
2007/05/23 Javascript
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
删除javascript所创建子节点的方法
2015/05/21 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
vue-router动态设置页面title的实例讲解
2018/08/30 Javascript
[04:07]显微镜下的DOTA2第八期——英雄复活动作
2014/06/24 DOTA
[43:03]完美世界DOTA2联赛PWL S2 PXG vs Magma 第二场 11.21
2020/11/24 DOTA
Python 流程控制实例代码
2009/09/25 Python
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
Python中类型关系和继承关系实例详解
2015/05/25 Python
python查看FTP是否能连接成功的方法
2015/07/30 Python
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
Python KMeans聚类问题分析
2018/02/23 Python
tensorflow实现加载mnist数据集
2018/09/08 Python
Python通用函数实现数组计算的方法
2019/06/13 Python
简单了解django orm中介模型
2019/07/30 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
Vision Direct比利时:在线订购隐形眼镜
2019/08/27 全球购物
抵押贷款承诺书
2014/05/30 职场文书
文明寝室标语
2014/06/13 职场文书
合理化建议书
2015/02/04 职场文书
Python中相见恨晚的技巧
2021/04/13 Python
使用tensorflow 实现反向传播求导
2021/05/26 Python
MySQL索引 高效获取数据的数据结构
2022/05/02 MySQL