使用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中scipy.misc.logsumexp函数的运用场景
Jun 23 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
Jan 17 Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 Python
使用Python开发SQLite代理服务器的方法
Dec 07 Python
对python中矩阵相加函数sum()的使用详解
Jan 28 Python
python 字符串追加实例
Jul 20 Python
Python Django2.0集成Celery4.1教程
Nov 19 Python
python3连接MySQL8.0的两种方式
Feb 17 Python
Pycharm如何自动生成头文件注释
Nov 14 Python
python中类与对象之间的关系详解
Dec 16 Python
OpenCV+Python3.5 简易手势识别的实现
Dec 21 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
Mar 03 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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
flash用php连接数据库的代码
2011/04/21 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
15 个 JavaScript Web UI 库
2010/05/19 Javascript
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
js+canvas绘制五角星的方法
2016/01/28 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
快速使用node.js进行web开发详解
2017/04/26 Javascript
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
vue实现微信分享功能
2018/11/28 Javascript
vue watch关于对象内的属性监听
2019/04/22 Javascript
vue-cli3中vue.config.js配置教程详解
2019/05/29 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
深入解析微信小程序开发中遇到的几个小问题
2020/07/11 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
2017/11/11 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
python实现全盘扫描搜索功能的方法
2019/02/14 Python
python浪漫表白源码
2019/04/05 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
HTML5 canvas 瀑布流文字效果的示例代码
2018/01/31 HTML / CSS
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
菲律宾旅游网站:Expedia菲律宾
2017/10/11 全球购物
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
使用Vue.js和MJML创建响应式电子邮件
2021/03/23 Vue.js
电脑租赁公司创业计划书
2014/01/08 职场文书
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang