使用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 25 Python
Python NumPy库安装使用笔记
May 18 Python
Python使用minidom读写xml的方法
Jun 03 Python
windows及linux环境下永久修改pip镜像源的方法
Nov 28 Python
Python语言描述KNN算法与Kd树
Dec 13 Python
Python利用字典将两个通讯录文本合并为一个文本实例
Jan 16 Python
使用Python微信库itchat获得好友和群组已撤回的消息
Jun 24 Python
python list格式数据excel导出方法
Oct 31 Python
浅谈对pytroch中torch.autograd.backward的思考
Dec 27 Python
Django 自定义权限管理系统详解(通过中间件认证)
Mar 11 Python
Django框架请求生命周期实现原理
Nov 13 Python
python os.rename实例用法详解
Dec 06 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 array操作10个小技巧分享
2011/06/23 PHP
用PHP来计算某个目录大小的方法
2014/04/01 PHP
PHP获取中英混合字符串长度的方法
2014/06/07 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
PHP中把对象转换为关联数组代码分享
2015/04/09 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
js带按钮的提示框可供选择示例代码
2013/09/17 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
浅析node.js中close事件
2014/11/26 Javascript
JavaScript中的类与实例实现方法
2015/01/23 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
jQuery Dom元素操作技巧
2018/02/04 jQuery
JS中this的指向以及call、apply的作用
2018/05/06 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
Vue项目中配置pug解析支持
2019/05/10 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
2020/12/24 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
python用700行代码实现http客户端
2021/01/14 Python
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
高中运动会广播稿
2014/01/21 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
部门2014年度工作总结
2014/11/12 职场文书
2015年乡镇扶贫工作总结
2015/04/08 职场文书
积极心理学课程心得体会
2016/01/22 职场文书
Pycharm远程调试和MySQL数据库授权问题
2022/03/18 MySQL
拙作再改《我的收音机情缘》
2022/04/05 无线电
Django框架中表单的用法
2022/06/10 Python