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

如何找出url是否包含img或其他文件?如何排除这些文件,只下载图片?

要找出URL是否包含img或其他文件,可以使用正则表达式来匹配URL中的文件类型。以下是一个示例代码,可以帮助你实现这个功能:

代码语言:txt
复制
import re

def check_url(url):
    # 匹配URL中的文件类型
    file_types = re.findall(r'\.(\w+)$', url)
    
    if 'img' in file_types:
        return True
    else:
        return False

# 示例用法
url1 = 'https://example.com/image.jpg'
url2 = 'https://example.com/document.pdf'

if check_url(url1):
    print('URL包含图片文件')
else:
    print('URL不包含图片文件')

if check_url(url2):
    print('URL包含图片文件')
else:
    print('URL不包含图片文件')

上述代码使用正则表达式 \.\w+$ 来匹配URL中的文件类型,然后判断是否包含img文件类型。如果包含img文件类型,则返回True,否则返回False。

如果你只想下载图片文件,可以在代码中添加相应的逻辑来实现。以下是一个示例代码,可以帮助你实现只下载图片的功能:

代码语言:txt
复制
import requests
import re

def download_image(url, save_path):
    response = requests.get(url)
    
    # 获取文件名
    file_name = re.findall(r'/([^/]+)$', url)[0]
    
    # 判断文件类型是否为图片
    file_type = re.findall(r'\.(\w+)$', file_name)[0]
    if file_type.lower() not in ['jpg', 'jpeg', 'png', 'gif']:
        print('文件类型不是图片,无法下载')
        return
    
    # 保存图片
    with open(save_path + file_name, 'wb') as f:
        f.write(response.content)
    
    print('图片下载完成')

# 示例用法
url1 = 'https://example.com/image.jpg'
url2 = 'https://example.com/document.pdf'
save_path = '/path/to/save/'

download_image(url1, save_path)
download_image(url2, save_path)

上述代码使用requests库来发送HTTP请求,并使用正则表达式来判断文件类型是否为图片。如果文件类型是图片,则将其保存到指定的路径中。

请注意,以上代码仅为示例,实际应用中可能需要根据具体需求进行适当的修改和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

全网最细------爬取4k付费高清大图(免费下载再也不是梦)

本次案例将教大家免费爬取4k高清付费大图,即使你是爬虫新手,也可以食用本次文章实现你的免费下载梦,话不多说,先看效果网站视图:看到这些图片是否怦然心动,跟着我一起看下去.下图是图片下载后保存的目录一....思路分析        首先最基本的是获取每张图片的链接,然后下载;获取链接的方式:查看网页源代码,发现每张图片的部分url在源代码中,此时只需要找出缺失url然后拼接,即可获取图片的完整链接。        ...获取每张图片的链接后,进行遍历,获取原始图片名字作为图片保存名;将图片保存在指定目录,每下载一张图片,打印输出下载完成.二.技术支撑1.os创建指定文件夹1.1判断文件是否存在os.path.exists...创建最后一层文件夹,如果中间某一层文件夹不存在,将报错,可以先使用os.path.exists()判断.os.mkdir(r'C:\Users\123\demo1\test1')#只会创建test1文件夹...)三.逐步分析及代码实现1.获取图片部分url链接通过开发者工具,可以发现在网页源代码中有图片的部分链接但不完整2.获取图片完整url链接如何获取前半部分链接?

1K60

Python:用一行代码在几秒钟内抓取任何网站

web.download("img", "fahrschule/images") 首先,我们定义通过关键字 img 下载所有图像媒体。接下来,我们定义输出文件夹,图像应保存到的位置。就是这样!...为了获得总体概述,让我们找出它链接到的其他网站,出于这个原因,我们指定获取域链接。...好的,但现在我们想进一步了解这些链接,我们如何做到这一点? 获取链接域 好吧,更详细的链接只不过是外部链接,所以,我们做了同样的请求,但这次包括外部,但不包括域。...只需指定要将所有视频媒体下载到输出文件夹 w3/videos 中,就可以开始了。当然,你也可以收到视频的链接,然后再下载,但这会不太酷。...video_links = w3.getVideos() 下载其他文件类型(如 pdf 图片) 现在让我们更笼统地说,下载特殊文件类型,如 .pdf、.php .ico 怎么样?

2.5K30
  • 实验:用Unity抓取指定url网页中的所有图片下载保存

    需要思考的问题: 1.如何得到网页url的html源码呢? 2.如何在浩瀚如海的html中匹配出需要的资源地址呢? 3.如何按照得到的资源地址集合批量下载资源呢?...4.下载的资源一般为文件流,如何生成指定的资源类型并保存呢?...其他的错误类型还有很多。为什么要了解这一点呢,因为之后在发送Http请求时要想办法对错误进行处理跳过执行下一任务。...如果成功通过Web请求得到了指定url地址的html源码,那就可以执行下一步了。 第二步,收集html中所需要的数据信息,本例中就是要从这些源码中找出图片的链接地址。...总结一下,首先利用html的常用标签来找可以找到大部分的图片,但还是有部分图片并不在这些标签之内。

    3.4K30

    python爬虫 scrapy爬虫框架的基本使用

    每一页都有多个 class 为 quote 的区块,每个区块内都包含 text、author、tags。那么我们先找出所有的 quote,然后提取每一个 quote 中的内容。...Spider类定义了如何爬取某个(某些)网站,包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(抓取item) import scrapy from get_img.items...Pipeline,包括文件下载图片下载。...下载文件图片的原理与抓取页面的原理一样,因此下载过程支持异步和多线程,十分高效。...该方法的第一个参数 results 就是该 Item 对应的下载结果,它是一个列表形式,列表每一个元素是一个元组,其中包含下载成功失败的信息。这里我们遍历下载结果找出所有成功的下载列表。

    1.3K30

    如何用python快速爬取小姐姐的美图?(终极解答)

    获取下载链接 打开刚刚的网址,点击鼠标右键,检查,此时进入开发者模式。分析网页代码,可以轻松发现图片所在的标签。 ? 标签内既包含图片地址,也带有对应名称。...可以看到,输出的列表包含了本页面所有的图片url。 这样我们就完成了爬取图片的第一步。...图片 res.text ==> 获取文本 res.content ==> 下载内容 这里我们下载图片使用res.content 批量下载 通过以上两步,我们就构造好了函数get_url()、download_img...后续提升 前面给大家说了最核心的部分,即便再复杂的图片下载代码,也离不开这些核心基础。但大家在实际应用中,还是有不少提升的地方的。 1、文章一开始也提过,有一些网站反爬,要先解决反爬问题。...2、本文演示了一个网页是如何爬取图片的,有一些小伙伴可能会想爬取全站的图片,这里就需要观察翻页效果以及url规律来构建网页链接了。 同时,不同网页对应的图片最好放在不同的文件夹了。

    37730

    源码解析-url状态检测神器ping-url

    同源策略限制了从同一个源加载的文档脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。 所以,为了实现任意url可以正常访问,第一个要解决的问题就是:跨域。...依据这个,可以做个拓展,找出所有可跨源访问的html标签: 1.2 如何判断访问性 从可跨源访问的...onload事件的触发时机是资源已下载完成。 只要触发这个事件,则证明url不是死链。 这样,就可以帮onerror排除意外情况,让准确率达到100%!...所以也被排除掉。 X-Frame-Options是一个HTTP标头(header),用来告诉浏览器这个网页是否可以放在iFrame内。...如果url对应的资源是可自执行的js函数,则完全有可能被利用干坏事。 标签因为只能触发onerror,所以也被排除。 1.4 解析代码 最后只有标签可以使用。

    1.9K40

    自己动手写工具:百度图片批量下载

    于是,我们想到了使用网络抓取去帮我们去下载图片,并且保存到我们设定的文件夹中,现在我们就来看看如何来设计开发一个这样的图片批量下载器。...它的基本实现思想就是通过一个多个入口网址来获取更多的URL,然后通过对这些URL所指向的网络资源下载并分析后,再获得这些网络资源中包含URL,以此类推,直到再没有可下的URL为止。 ?   ...(2) 负责下载网络资源的线程从下载队列中取得一个多个URL,并将这些URL所指向的网络资源下载到本地{ 在下载之前,一般应该判断一下这个URL是否已经被下载过,如果被下载过,则忽略这个URL }。...四、个人开发小结 4.1 运行结果演示   这里我们批量下载一页(60张)的美女图片到指定的文件夹中,看看下载是否真的帮助我们下载图片:   (1)程序的运行过程:   (2)下载后的图片文件夹:...(1)更改URL处的代码: ?   (2)程序的运行过程: ?   (3)下载图片文件: ?

    1.8K10

    基于 Python 的 Scrapy 爬虫入门:代码详解

    :单个图集浏览的页面地址 post_id:图集编号,在网站中应该是唯一的,可以用来判断是否已经抓取过该内容 site_id:作者站点编号 ,构建图片来源链接要用到 title:标题 excerpt:摘要文字...type:图集类型,目前发现两种,一种multi-photo是纯照片,一种text是文字与图片混合的文章式页面,两种内容结构不同,需要不同的抓取方式,本例中抓取纯照片类型,text类型直接丢弃 tags...:图集标签,有多个 image_count:图片数量 images:图片列表,它是一个对象数组,每个对象中包含一个img_id属性需要用到 根据图片浏览页面分析,基本上图片的地址都是这种格式: https...post['image_count']) item['images'] = {} # 将 images 处理成 {img_id: img_url} 对象数组...前面说过,并不是所有抓取的条目都需要,例如本例中我们只需要 type=”multi_photo 类型的图集,并且图片太少的也不需要,这些抓取条目的筛选操作以及如何保存需要在pipelines.py中处理

    1.4K90

    文件下载,搞懂这9种场景就够了

    接着通过调用 a 元素的 click 方法来触发文件下载操作,最后还会调用一次 URL.revokeObjectURL 方法,从内部映射中删除引用,从而允许删除 Blob(如果没有其他引用),并释放内存...否则,会先使用 同步的 HEAD 请求 来判断是否支持 CORS 机制,若支持的话,将进行数据下载并使用 Blob URL 实现文件下载。...绝大多数现代浏览器都支持一种名为 Data URLs 的特性,允许使用 Base64 对图片其他文件的二进制数据进行编码,将其作为文本字符串嵌入网页中。...所以文件也可以通过 Base64 的格式进行传输,接下来我们将介绍如何下载 Base64 格式的图片。...当用户切换不同的图片时,img#imgPreview 元素中显示的图片会随之发生变化。 base64 下载示例 <img id="imgPreview" src=".

    3.1K10

    「Python爬虫系列讲解」十二、基于图片爬取的 Selenium 爬虫

    其中,主题名称用于命名文件图集,图集超链接用于进一步爬取图片。...该方法返回一个包含两个元素的元组(filename, headers),其中,filename 表示保存到本地的路径,headers 参数表示服务器的响应头。 下面通过一个例子来演示如何使用该方法。...创建之前应判断文件是否存在,若存在则替换,否则创建。...这里对每个主题图集爬取了 10 张照片,比如打开 “东方” 文件夹,将显示如下图所示的图片,每张图片的命名方式均对应图片 URL 中的命名。 ?...4 本文小结 随着数据分析的快速发展,目前已不局限于分析数字、文本等内容了,图像、声音、视频等信息的分析也成为研究的热点,随之而来的问题就是如何得到这些数据。

    2.8K30

    嗯,手搓一个TinyPng压缩图片的WebpackPlugin也SoEasy啦

    在过滤图片时,使用path模块判断文件类型是否为jpg和png,是则继续处理,否则不处理。 数量限制 数量限制当然是不能存在的,万一项目里超过20张图片,那不是得分批处理,这个不能有。...体积限制 体积限制这个能理解,也没必要搞一张那么大的图片,多浪费带宽流量和加载时间啊。在上传图片时,使用fs模块判断文件体积是否超过5M,是则不上传,否则继续上传。...通过上传图片函数获取压缩后的图片信息,再依据图片信息通过下载图片函数生成本地文件。...依据参数初始Compiler对象,加载所有Plugin,执行run() 确定入口:依据配置文件找出所有入口文件 编译模块:依据入口文件找出所有依赖模块关系,调用所有Loader进行转换 完成编译:得到每个模块转换后的内容及其之间的依赖关系...发布模块 接入 安装 npm i tinyimg-webpack-plugin 使用 配置 功能 格式 描述 enabled 是否启用功能 true/false 建议在生产环境下开启 logged 是否打印日志

    94620

    PaddlePaddle实现人脸识别系统一——人脸数据集的获取

    中的图片一样,唯一不同的是这些图片是png格式的,所以这些图片要大得多。...第一阶段 爬取人脸图片的核心思路就是获取中国明星的名字,然后使用明星的名字作为图片搜索的关键字进行获取图片,然后删除下载过程损坏的图片和没有包含人脸的图片,或者过多人脸的图片(我们保存一张图片包含一张人脸的图片...,', result, re.S) if len(img_urls) < 1: break # 把这些图片URL一个个下载...) except: os.remove(image) 下载图片中可能没有人脸,或者包含多张人脸,所以我们要把这些图片删除掉,该功能主要在delete_more_than_one.py...这一个阶段首先是把每个文件夹中包含相同一个人的图片较多的人脸,选择其中一个作为主人脸图片。然后使用这个主图片来对比其他图片,判断是否是同一个人,如果不是就删除该图片

    3.4K20

    常见公开人脸数据集的获取和制作自定义人脸数据集

    中的图片一样,唯一不同的是这些图片是png格式的,所以这些图片要大得多。...第一阶段爬取人脸图片的核心思路就是获取中国明星的名字,然后使用明星的名字作为图片搜索的关键字进行获取图片,然后删除下载过程损坏的图片和没有包含人脸的图片,或者过多人脸的图片(我们保存一张图片包含一张人脸的图片...,', result, re.S) if len(img_urls) < 1: break # 把这些图片URL一个个下载...except: os.remove(image)下载图片中可能没有人脸,或者包含多张人脸,所以我们要把这些图片删除掉,该功能主要在delete_more_than_one.py中实现...这一个阶段首先是把每个文件夹中包含相同一个人的图片较多的人脸,选择其中一个作为主人脸图片。然后使用这个主图片来对比其他图片,判断是否是同一个人,如果不是就删除该图片

    4.9K10

    Teleport Pro使用教程

    ,如*.html、*.gif等,如果你喜欢某个站点的图片,可在此设置下载图片文件,而把其他类型的文件过滤掉。   ...第二部分为下载模式(RetrievalMode),它有几个选项,一是下载所有文件,一般此项要选中,但如果你下载大于一定字节的文件时,这项要关掉;二是选择是否下载背景图片;三是是否下载JAVA小程序;四是下载文件名...一个HTML并不能包含所有网页中所能看到的东西,比如图片吧,因为图片文件包含在HTML文件之内。...下载下来的文件情况不一样,有的是完整的,有的则不完整,TeleportPro给了你选择的权力,是下载“好”文件,还是下载“坏”文件,还是两者全下载下载文件类型是HTML,还是其他,等等。...非也,TeleportPro会把在HTML代码解释中包含你输入的关键字的Web页也下载下来,所以出现“出错”假象。   第二栏是排除某些文件,用DOS文件名形式表示。

    1.9K30

    007:Scrapy核心架构和高级运用

    3、下载器: 下载器主要实现对网络上要爬取的网页资源进行高速下载,由于该组件需要通过网络进行大量数据的传输,所以该组件的压力负担也会比其他的多。...下载下载了对应的网页资源后,也会将这些数据传递给Scrapy引擎,再由Scrapy引擎传递给对应的爬虫进行处理。 4、下载中间件: 下载中间件是处于下载器和引擎之间的一个特定的组件。...5、蜘蛛spider: spider是定义如何抓取某个网站(一组网站)的类,包括如何执行抓取(即关注链接)以及如何从其网页中提取结构化数据(即抓取项目)。...item['img_url'] = movie.xpath('....robot协议,即可正常下载图片 IMAGES_STORE = 'E:\\img\\' scrapy数据存入mysql数据库: 将爬取的各种信息通过json存在文件中,不过对数据的进一步使用显然放在数据库中更加方便

    1.1K20
    领券