使用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之眼花缭乱的运算符
Sep 14 Python
对于Python异常处理慎用“except:pass”建议
Apr 02 Python
python利用装饰器进行运算的实例分析
Aug 04 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
Feb 21 Python
CentOS7下python3.7.0安装教程
Jul 30 Python
漂亮的Django Markdown富文本app插件的实现
Jan 02 Python
对Python3 goto 语句的使用方法详解
Feb 16 Python
Django REST Framework序列化外键获取外键的值方法
Jul 26 Python
使用Tkinter制作信息提示框
Feb 18 Python
python求numpy中array按列非零元素的平均值案例
Jun 08 Python
简述 Python 的类和对象
Aug 21 Python
PyTorch 如何自动计算梯度
May 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
PHP音乐采集(部分代码)
2007/02/14 PHP
PHP编码转换
2012/11/05 PHP
php+js实现异步图片上传实例分享
2014/06/02 PHP
PHPer 需要了解的 5 个 Composer 小技巧
2014/08/18 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
2016/04/08 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
web打印小结
2017/01/11 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
Js中async/await的执行顺序详解
2017/09/22 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
2018/08/24 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
react中hook介绍以及使用教程
2020/12/11 Javascript
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
Pycharm小白级简单使用教程
2020/01/08 Python
基于Tensorflow高阶读写教程
2020/02/10 Python
python中time、datetime模块的使用
2020/12/14 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
HTML5离线应用与客户端存储的实现
2018/05/03 HTML / CSS
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
英国最大的香水商店:The Fragrance Shop
2018/07/06 全球购物
Nike意大利官网:Nike.com IT
2020/01/19 全球购物
介绍一下grep命令的使用
2015/06/12 面试题
语文教育专业求职信
2014/06/28 职场文书
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers