首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python3 将源目录中的图片根据设定最长边参数保存到目标目录脚本(Image 的使用)

如果我们给客户制作网站,客户会发送过来一堆的图片,这些图片一般都是通过手机或者数码相机拍摄的。有一个问题就是这些图片会比较大。那我们就需要对这些图片进行压缩的处理,这就是我写的这个脚本的实际用途。.../usr/bin/env python3 # -*- coding: UTF-8 -*- import argparse import os import imghdr from PIL import...simg_w = simg.size[0] simg_h = simg.size[1] # 如果原图片宽高均小于设置尺寸,则将原图直接复制到目标目录中...代码解析 首先,要写命令行的脚本,就需要处理各种各样的参数,所以,argparse 库是必不可少的 Python os 库对文件夹的常见用法 # 判断目录是否存在 os.path.exists(__dir...os.path.isfile(__file__) # 判断路径是否为文件夹 os.path.isdir(__path__) # 创建多层文件夹(也可以创建单层文件夹) os.makedirs(__path__) # 根据路径取得文件的文件名

1.2K30

lxml网页抓取教程

使用lxml处理XML及网页抓取 在本教程中,我们会学习lxml库和创建XML文档的基础知识,然后会处理XML和HTML文档。最后,我们将利用以上所学,融会贯通,看看如何使用lxml提取数据。...例如,如果HTML的没有相应的结束标记,它仍然是有效的HTML,但它不会是有效的XML。 在本教程的后半部分,我们将看看如何处理这些情况。接下来让我们专注于兼容XML的HTML。...#元素类 使用python lxml创建XML文档,第一步是导入lxml的etree模块: >>> from lxml import etree 每个XML文档都以根元素开始。可以使用元素类型创建。...元素类型是一个灵活的容器对象,可以存储分层数据。可以描述为字典和列表之间的交叉。 在这个python lxml示例中,目标是创建一个兼容XML的HTML。...在XML中查找元素 从广义上讲,有两种使用Python lxml库查找元素的方法。第一种是使用Python lxml查询语言:XPath和ElementPath。例如,以下代码将返回第一个段落元素。

4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python3 初学实践案例(12)将源目录中的图片根据设定最长边参数保存到目标目录脚本(Image 的使用)

    Python3 初学实践案例(12)将源目录中的图片根据设定最长边参数保存到目标目录脚本(Image 的使用) 如果我们给客户制作网站,客户会发送过来一堆的图片,这些图片一般都是通过手机或者数码相机拍摄的...关于这个库的使用,可以看下我学习 python 的第三篇博文的详细介绍《argparse 命令行参数库的使用》 ,这里我就不详细说明了。...Python os 库对文件夹的常见用法 # 判断目录是否存在 os.path.exists(__dir__) # 判断文件是否存在 os.path.isfile(__file__) # 判断路径是否为文件夹...os.path.isdir(__path__) # 创建多层文件夹(也可以创建单层文件夹) os.makedirs(__path__) # 根据路径取得文件的文件名 os.path.basename(...__path__) 更多可以查看文档 https://docs.python.org/3/library/os.path.html 关于图片处理,可以查看 python pil 的官方文档 http:/

    70610

    深入解读Python解析XML的几种方式

    本文将介绍深入解读利用Python语言解析XML文件的几种方式,并以笔者推荐使用的ElementTree模块为例,演示具体使用方法和场景。文中所使用的Python版本为2.7。...不过要注意,在这个包中,还提供了几个不同的模块,各自的性能有所区别。 DOM解析器在任何处理开始之前,必须把基于XML文件生成的树状数据放在内存,所以DOM解析器的内存使用量完全根据输入资料的大小。...下面,我们以ElementTree模块为例,介绍在Python中如何解析lxml。 利用ElementTree解析XML Python标准库中,提供了ET的两种实现。...与其他Element对象一样,根元素也具备遍历其直接子元素的接口: 查找需要的元素 从上面的示例中,可以明显发现我们能够通过简单的递归方法(对每一个元素,递归式访问其所有子元素)获取树中的所有元素。...Element对象中有一些find方法可以接受Xpath路径作为参数,find方法会返回第一个匹配的子元素,findall以列表的形式返回所有匹配的子元素, iterfind则返回一个所有匹配元素的迭代器

    2.7K70

    爬虫0040:数据筛选爬虫处理之结构化数据操作

    正则表达式 正则表达式是一门单独的技术,在实际操作过程中由于它优雅的字符匹配特性,各种编程语言都陆续支持正则表达式的操作方式,Python中通过内建模块re进行正则表达式的处理,大致按照如下三个步骤进行数据的操作...//table/tr[position()元素的子元素的tr元素。 //td[@width] 选取所有拥有名为 width 的属性的 td 元素。...---- 5.python操作Xpath python第三方模块lxml可以对Xpath有友好的支持,lxml是C实现的一种高性能python用于HTML/XML的解析模块,可以通过Xpath语法在html...,Xpath在进行遍历操作时针对描述语言指定的语法结构进行局部DOM对象树的遍历得到具体的数据,但是BS4在操作过程中,会将整个文档树进行加载然后进行查询匹配操作,使用过程中消耗资源较多,处理性能相对Xpath...、标签、属性、内容等等都封装成了python中对象的属性,在查询操作过程中,通过调用指定的函数直接进行数据 匹配检索操作,非常的简单非常的灵活。

    3.2K10

    Python下的XML文件处理与远程调用实践

    XML简介XML是一种用于存储和传输数据的标记语言,具有自我描述性和可扩展性的特点。它使用标签和属性来定义数据的结构,被广泛应用于配置文件、Web服务通信和数据交换等领域。2....写入XML文件接下来,我们将学习如何使用Python写入XML文件。...(root)# 写入文件tree.write('new_book.xml')以上代码首先创建XML元素和子元素,然后设置各个元素的文本内容,并最终通过write方法将XML树写入新的文件(new_book.xml...XML文件的高级操作在实际应用中,有时候需要更复杂的XML文件操作,比如处理命名空间、处理XML属性等。下面展示一个例子,演示如何处理带有命名空间和属性的XML文件。...使用第三方库:lxml虽然Python标准库中的xml模块提供了基本的XML处理功能,但在处理大型XML文件或需要更高性能的情况下,我们可以使用第三方库lxml。

    20520

    Python爬虫之BeautifulSoup解析之路

    它会自动把将要处理的文档转化为Unicode编码,并输出为utf-8的编码,不需要你再考虑编码的问题。 支持Python标准库中的HTML解析器,还支持第三方的模块,如 lxml解析器 。...在Python2.7.3之前的版本和Python3中3.2.2之前的版本,必须安装lxml或html5lib, 因为那些Python版本的标准库中内置的HTML解析方法不够稳定。...BeautifulSoup的文档对象创建 首先引入bs4库,也就是BeautifulSoup在Python中的模块。...子节点 子节点有 .contents 和 .children 两种用法。 contents content属性可以将标签所有子节点以列表形式返回。...上面提介绍的都是如何遍历各个节点,下面我们看看如何搜索我们我们真正想获取的内容,如标签属性等。 BeautifulSoup的搜索文档树 搜索文档树有很多种用法,但使用方法都基本一致。

    1.8K10

    Python爬虫笔记3-解析库Xpat

    在HTML中,有时不严格,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略或者之类的结束标记。在XML中,是严格的树状结构,绝对不能省略掉结束标记。...在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个/ 字符作为结尾。这样分析器就知道不用查找结束标记了。 在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。...设计目标不同 XML被设计为传输和存储数据,其焦点是数据的内容。 HTML显示数据以及如何更好显示数据。 XML的节点关系 1、父(parent) 每个元素以及属性都有一个父。...//@lang 选取名为lang的所有属性 lxml库使用 lxml库安装 lxml官网 Github 1、window安装 cmd进入命令行模式,执行 pip3 install lxml 2、ubuntu16.04...$ python3 >>> import lxml etree模块使用 初步使用 文件名lxml_test.py # 使用 lxml 的 etree 库 from lxml import etree

    1K20

    一文入门BeautifulSoup

    .根据操作系统不同,可以选择下列方法来安装lxml: $ apt-get install Python-lxml $ easy_install lxml $ pip install lxml 另一个可供选择的解析器是纯...contents contents属相将tag的子节点以列表的形式输出,获取到的是标签中的内容部分 ? children 返回的不是列表形式,可以通过遍历来进行获取子节点。...parents 将某个元素的所有父辈节点通过递归得到 ?...过滤器贯穿整个搜索的API。它们可以被使用在tag的name中,节点的属性中,字符串或者它们的混合中,具体见下面的实例 传入字符串 直接传入需要查找的某个标签,会将结果以列表的形式展示出来 ?...比如我们现在想找所有以b开头的标签,这个时候结果应该是和都被找到,使用的是re模块中的compile()方法 ? ? 传入列表 如果想同时查找某几个标签,可以通过列表的形式 ?

    3.9K00

    python爬虫入门(三)XPATH和BeautifulSoup4

    XPATH XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历。...LXML库 安装:pip install lxml lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML 数据。...lxml和正则一样,也是用 C 实现的,是一款高性能的 Python HTML/XML 解析器,可以利用XPath语法,来快速的定位特定元素以及节点信息。  简单使用方法 #!...爬取美女吧图片  1.先找到每个帖子列表的url集合 ? ? 2.再找到每个帖子里面的每个图片的的完整url链接 ? ? 3.要用到 lxml 模块去解析html #!...BeautifulSoup 用来解析 HTML 比较简单,API非常人性化,支持CSS选择器、Python标准库中的HTML解析器,也支持 lxml 的 XML解析器。

    2.4K40

    一文入门Beautiful Soup4

    什么是BS4 如何安装BS4 解析器比较 BS4语法 四大对象种类 遍历文档树 搜索文档树 CSS选择器 [007S8ZIlly1ghcwswsq9lj305t06ywfa.jpg] lxml .根据操作系统不同,可以选择下列方法来安装lxml: $ apt-get install Python-lxml $ easy_install lxml $ pip install...遍历文档树 直接子节点 tag的名称 一个Tag可能包含多个字符串或其它的Tag,这些都是这个Tag的子节点。...使用find_all方法 [image-20200802172526968] contents contents属性将tag的子节点以列表的形式输出,获取到的是标签中的内容部分 [image-20200802173641387...它们可以被使用在tag的name中,节点的属性中,字符串或者它们的混合中,具体见下面的实例 传入字符串 直接传入需要查找的某个标签,会将结果以列表的形式展示出来 [image-20200808100830578

    1K21

    六、解析库之Beautifulsoup模块

    根据操作系统不同,可以选择下列方法来安装lxml: $ apt-get install Python-lxml $ easy_install lxml $ pip install lxml 另一个可供选择的解析器是纯...在Python2.7.3之前的版本和Python3中3.2.2之前的版本,必须安装lxml或html5lib, 因为那些Python版本的标准库中内置的HTML解析方法不够稳定.... """ #基本使用:容错处理,文档的容错能力指的是在html代码不完整的情况下,使用该模块可以识别该错误。...,结果有body和b标签 #1.3、列表:如果传入列表参数,Beautiful Soup会将与列表中任一元素匹配的内容返回.下面代码找到文档中所有标签和标签: print(soup.find_all...有些tag属性在搜索不能使用,比如HTML5中的 data-* 属性: data_soup = BeautifulSoup('foo!

    1.7K60

    快速入门网络爬虫系列 Chapter08 | 使用Python库抽取

    2、DOM树 基于DOM,会载入整个HTML文档,并解析整个DOM树 HTML是分层的,由标签、属性、数据组成,这些元素整体构成一颗DOM树,如下图: ?...DOM树中每个节点都是一个元素,一个元素可以有自己的属性,也可以包含若干个子元素 二、信息抽取 基于Xpath和Dom树两个基础知识,可以使用python库进行针对性的信息抽取 Python语言中处理...提供简单有效的Python API 官方文档:https://lxml.de/ 从网络爬虫的角度来看,我们关注的是lxml的文本解析功能 在iPython环境中,使用lxml:from lxml import...2、BeautifulSoup BeautifulSoup是Python语言中另一种解析XML/HTML的第三方解析库: 处理不规范标记并生成分析树(parse tree) 提供简单常用的导航,搜索以及修改分析树的操作功能...2.3、节点类型 BeautifulSoup将DOM树中每个节点都表示成一个对象 这些节点对象可以归纳为以下几种: Tag:HTML中的标签。

    1.9K20

    【小白必看】轻松获取王者荣耀英雄皮肤图片的Python爬虫程序

    幸运的是,我们可以利用编程的力量来自动化这一过程。本文将介绍如何使用Python编写一个简单的爬虫程序,通过访问英雄主页并解析HTML代码,来批量下载王者荣耀英雄的皮肤图片。...我们将使用requests模块发送HTTP请求,lxml库解析HTML代码,以及其他一些常用的Python模块和库。代码将从官方网站获取英雄列表数据,并遍历列表获取英雄的ID和中文名。...然后,我们将访问每个英雄的主页,提取其中的皮肤名称,并根据名称构建皮肤图片的URL。最后,我们将使用requests模块下载图片,并保存到对应的英雄目录中。...然后使用Python的requests模块发送HTTP请求,并将下载得到的图片保存到对应的英雄目录中。...通过阅读本文,读者可以了解到如何使用requests模块发送HTTP请求、如何使用lxml库解析HTML代码,以及一些常用的Python模块和库的使用方法。

    19610

    xpath语法简介

    有多种方式可以从网页中提取我们需要的信息,既可以通过正则表达式,也可以使用BeautifulSoup模块。除此之外,xpath表达式也是一种常见用法。...在python中,最常见的是通过lxml模块来使用xpath, 基本用法如下 >>> from lxml import etree >>> html = etree.parse("K00001.html...", etree.HTMLParser()) >>> html.xpath('/html') 在xml的树状结构中,根节点用/表示,所有的元素都可以作为子节点存在。...和linux文件树中相对和绝对定位类似,在xpath中,也有两种定位的写法 1. 绝对定位,用/表示,选取路径树中直接相连的子节点 2....相对定位,用//表示,表示路径树中所有的子孙节点 同时,一个点号表示当前节点,两个点号表示当前节点父节点的简写方式在xpath中也是适用的。

    97430

    Python爬虫实战入门:豆瓣电影Top250(保你会,不会来打我)

    lxml模块 了解 lxml模块和xpath语法 lxml 是 Python 编程语言中一个常用的第三方库,它提供了一个高效而简单的方式来解析和处理 XML 和 HTML 文档。...lxml模块可以利用XPath规则语法,来快速的定位HTML\XML 文档中特定元素以及获取节点信息(文本内容、属性值) XPath (XML Path Language) 是一门在 HTML\XML...lxml模块的使用 导入lxml 的 etree 库 from lxml import etree 利用etree.HTML,将html字符串(bytes类型或str类型)转化为Element对象,Element...返回空列表:根据xpath语法规则字符串,没有定位到任何元素 返回由字符串构成的列表:xpath字符串规则匹配的一定是文本内容或某属性的值 返回由Element对象构成的列表:xpath规则字符串匹配的是标签...将数据写入到csv文件中需要以特定的格式写入,一种是列表嵌套元组,一种是列表嵌套字典。这里我们使用列表嵌套字典的方式写入。

    2.9K11

    爬虫课堂(十八)|编写Spider之使用Selector提取数据

    在回调函数内,可以使用选择器(Selectors) 来分析网页内容,并根据分析的数据生成Item。 最后,由Spider返回的Item将被存到数据库或存入到文件中。...可以看出来使用Selector来分析提取网页内容是在编写Spider中必不可少,同时也是最重要的工作之一,这一章节我们就来学习使用Selector如何提取网页数据。...在Python中常用以下库处理这类问题: BeautifulSoup BeautifulSoup是在程序员间非常流行的网页分析库,它基于HTML代码的结构来构造一个Python对象,对不良标记的处理也非常合理...lxml lxml是一个基于 ElementTree (不是Python标准库的一部分)的Python化的XML解析库(也可以解析HTML),它解析速度较快,API较复杂。...] a[src$=".pdf"] 选择其 src 属性以 ".pdf" 结尾的所有 元素 [attribute*=value] a[src*="abc"] 选择其 src 属性中包含 "abc"

    1.2K70
    领券