使用Python保存网页上的图片或者保存页面为截图
作者:j_akill 发布时间:2022-04-08 10:45:19
标签:Python,图片
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)
保存的文件如下:
网页的一部分保存为图片
主要思路是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的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,
- 一、数据描述数据集中9994条数据,横跨1237天,销售额为2,297,200.8603美元,利润为286,397.0217美元,他们的库存
- 现在Web页面的交互方式越来越多样化,其中拖放页面元素也是一种很常见的操作。在这类操作当中有两个主要问题需要解决,一个是事件的注册方式,一般
- 本文为大家分享了python查看微信消息撤回的具体代码,供大家参考,具体内容如下1.安装itchatitchat是一个开源的python微信
- function f(x){ alert(x); return
- 如何在VS2013下对MySQL5.6进行连接,本文为大家提供了解决方案,供大家参考,具体内容如下环境:win832系统,VS2013,My
- --语 句 功 能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库
- 看此博客之前建议先看看B站的视频python数据结构与算法系列课程,该课程中未实现双向循环链表的操作,所以我按照该视频的链表思路实现了双向循
- 如果要在python2的py文件里面写中文,则必须要添加一行声明文件编码的注释,否则python2会默认使用ASCII编码。(python3
- 一、前言今天学习视频时课后作业是找出1000以内既是素数又是回文数的数,写代码这个很容易,结果一运行遇到了bug,输出结果跟预期不一样,调试
- 简单使用csv.DictReader()方法示例代码1:import csvf = open('sample','r
- 现在使用CSS网页布局,摒弃了传统Table表格布局的模式,但是Table表格在网页中还是少不了的,因为当需要输出表格类数据时,就应该使用表
- 上篇博客转载了关于感知器的用法,遂这篇做个大概总结,并实现一个简单的感知器,也为了加深自己的理解。感知器是最简单的神经网络,只有一层。感知器
- 在程序实际应用中,少不了要进行字符串拼接的操作。下面介绍一下Python语言中四种字符串拼接的方式。1. 算术运算符拼接在Python中算术
- 下面看下Ubuntu 18.04.4安装mysql的过程,内容如下所示:1 sudo apt-get update2 sudo a
- Internet的规模每一百天就会增长一倍,客户希望获得7天×24小时的不间断可用性及较快的系统反应时间,而不愿屡次看到某个站点“Serve
- Windows中升级MySQL应采取的步骤:1. 进行升级前你应先备份当前的MySQL安装。2. 下载最新Windows版MySQL。3.
- Bottle是一个快速、简洁、轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其
- 时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的。那么我们使用Python如何调用Linux的S
- 今天在项目中用到了弹出子窗口,就想到了用JavaScript实现的两种方法,一个是window.open();一个是window.showM