使用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中条件判断语句的简单使用方法
Aug 21 Python
详解python如何调用C/C++底层库与互相传值
Aug 10 Python
Python利用IPython提高开发效率
Aug 10 Python
django中的setting最佳配置小结
Nov 21 Python
Python二叉树的定义及常用遍历算法分析
Nov 24 Python
Python中循环后使用list.append()数据被覆盖问题的解决
Jul 01 Python
Python错误处理操作示例
Jul 18 Python
详解如何在Apache中运行Python WSGI应用
Jan 02 Python
对Pyhon实现静态变量全局变量的方法详解
Jan 11 Python
numpy.transpose()实现数组的转置例子
Dec 02 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
Jan 12 Python
实操Python爬取觅知网素材图片示例
Nov 27 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
推荐十款免费 WordPress 插件
2015/03/24 PHP
PHP实现登录注册之BootStrap表单功能
2017/09/03 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
JavaScript 比较时间大小的代码
2010/04/24 Javascript
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
关于query Javascript CSS Selector engine
2013/04/12 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
2013/06/05 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
JavaScript数据结构和算法之二叉树详解
2015/02/11 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
2015/08/04 Javascript
Javascript闭包实例详解
2015/11/29 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
JavaScript实现的CRC32函数示例
2016/11/23 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
在layui中使用form表单监听ajax异步验证注册的实例
2019/09/03 Javascript
使用axios发送post请求,将JSON数据改为form类型的示例
2019/10/31 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
[03:37]2015国际邀请赛第四日现场精彩集锦
2015/08/08 DOTA
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
2018/11/06 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
python中温度单位转换的实例方法
2020/12/27 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
PHP开发的一般流程
2013/08/13 面试题
Java提供了哪些企业应用编程接口
2015/02/13 面试题
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
管理站站长岗位职责
2013/11/27 职场文书
高二地理教学反思
2014/01/24 职场文书
百日安全生产活动总结
2014/07/05 职场文书
工程承包协议书
2014/10/20 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
MySQL令人大跌眼镜的隐式转换
2021/08/23 MySQL
python中使用redis用法详解
2022/12/24 Redis