利用python爬虫关键词批量下载高清大图

前言

在上一篇写文章没高质量配图?python爬虫绕过限制一键搜索下载图虫创意图片!中,我们在未登录的情况下实现了图虫创意无水印高清小图的批量下载。虽然小图能够在一些移动端可能展示的还行,但是放到pc端展示图片太小效果真的是很一般!建议阅读本文查看上一篇文章,在具体实现不做太多介绍,只讲个分析思路。

当然,本文可能技术要求不是特别高,但可以当作一个下图工具使用。

环境:python3+pycharm+requests+re+BeatifulSoup+json

在这里插入图片描述
这个确实也属实有一些勉强,不少童鞋私信问我有木有下载大图的源码,我说可能会有,现在分享给大家。

当然对于一个图片平台来说,高质量图片下载可能是其核心业务,并且我看了以下,那些高质量大图下载起来很贵!所以笔者并没有尝试付费下载然后查看大图的地址,因为这个可以猜想成功率很低,并且成本比较高,退而求其次,笔者采取以下几种方法

对图虫平台初步分析之后,得到以下观点:

  • 原版高质量无水印图片下载太贵,由于没付费下载没有找到高质量图的高清无水印原图真实地址。没有办法(能力) 下载原版高清无水印。并且笔者也能猜测这个是一个网站的核心业务肯定也会层层设套。不会轻易获得,所以并没有对付费高清高质量无水印图片穷追不舍
  • 但是高质量展示图在预览时候的是可以查看带有水印的高清图的(带着图虫创意水印)。
  • 网站有一些免费的高清大图图片可以获取到。虽然这个不是精选图,但是质量也还可以

下载免费高清大图

在图虫创意有个板块的图片是免费开放的。在共享图片专栏。的图片可以搜索下载。

https://stock.tuchong.com/topic?topicId=37 图虫创意url地址

在这里插入图片描述
找到一张图片点进去,检查地址你可以直接访问得到。而有相关因素的就是一个图片服务器域名+图片id组成的图片url地址。也就是我们要批量找到这些图片的id。
在这里插入图片描述
在搜索界面查看源码,发现这个和前面的分析如出一辙,它的图片id藏在js里面。我们只需通过正则解析。拿到id然后拼凑url即可完成所有图片地址,这个解析方式和上文基本完全一致,只不过是浏览器的URL和js的位置有相对的变化只需小量修改,然后直接爬虫下载保存即可!而这个搜索html的url就是https://stock.tuchong.com/free/search/?term=+搜索内容。这个下载内容的实现在上一篇已经分析过。请自行查看或看下文代码!这样
在这里插入图片描述

下载带水印的精选图

好的图片都在优选图片专栏。然而这部分图片我们可以免费获取带水印的图片。
在登录账号之后点开的图片预览,当你点开预览的时候是可以看得到图片的。每张图片对应一个唯一ID,这个地址可以获得但是比较麻烦。我们尝试能不能获得一个简单通用的url地址呢?

在这里插入图片描述
经过尝试发现这个图片的url可以在我们上面的免费高清大图url地址共用!也就是我们可以得到这个ID通过上个url来批量获取下载图片!下载图片的方法一致不需要重复造轮子。而id的获取方法我们在下载高清小图就已经详细介绍过了也是一样的。那么分析就已经成功了,代码将在后面给出,这样我们可以下载带水印的高清大图了!

  ##js的解析规则:  #---- js=soup.select(‘script‘) js=js[4] pattern = re.compile(r‘window.hits = (\[)(.*)(\])‘) va = pattern.search(str(js)).group(2)#解析js内容 #-------

在这里插入图片描述

当然,就配图而言还是高质量图的质量高很多,如果可以接受的话可以使用。唯一缺点就是图创水印。

代码与总结

import  requestsfrom  urllib import  parsefrom bs4 import BeautifulSoupimport reimport jsonheader = {    ‘user-agent‘: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36‘,    ‘Cookie‘: ‘wluuid=66;  ‘,    ‘Accept‘: ‘text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3‘,    ‘Accept-encoding‘: ‘gzip, deflate, br‘,    ‘Accept-language‘: ‘zh-CN,zh;q=0.9‘,    ‘Cache-Control‘: ‘max-age=0‘,    ‘connection‘: ‘keep-alive‘    , ‘Host‘: ‘stock.tuchong.com‘,    ‘Upgrade-Insecure-Requests‘: ‘1‘    }def mkdir(path):    import os# 引入模块    path = path.strip()# 去除首位空格    path = path.rstrip("\\") # 去除尾部 \ 符号    isExists = os.path.exists(path)  # 判断路径是否存在  # 存在     True # 不存在   False    if not isExists:  # 判断结果        os.makedirs(path)# 如果不存在则创建目录 # 创建目录操作函数        return True#print (path + ‘ 创建成功‘)    else:        # 如果目录存在则不创建,并提示目录已存在        #print(path + ‘ 目录已存在‘)         return Falsedef downloadimage(imageid,imgname):##下载大图和带水印的高质量大图    url = ‘https://weiliicimg9.pstatp.com/weili/l/‘+str(imageid)+‘.webp‘    url2 = ‘https://icweiliimg9.pstatp.com/weili/l/‘+str(imageid)+‘.webp‘    b=False    r = requests.get(url)    print(r.status_code)    if(r.status_code!=200):        r=requests.get(url2)    with open(imgname+‘.jpg‘, ‘wb‘) as f:        f.write(r.content)        print(imgname+" 下载成功")def getText(text,free):    texturl = parse.quote(text)    url="https://stock.tuchong.com/"+free+"search?term="+texturl+"&use=0"    print(url)    req=requests.get(url,headers=header)    soup=BeautifulSoup(req.text,‘lxml‘)    js=soup.select(‘script‘)    path=‘‘    if not free.__eq__(‘‘):        js=js[1]        path=‘无水印/‘    else:        js=js[4]        path=‘图虫创意/‘    print(js)    pattern = re.compile(r‘window.hits = (\[)(.*)(\])‘)    va = pattern.search(str(js)).group(2)#解析js内容    print(va)    va = va.replace(‘{‘, ‘{‘).replace(‘}‘, ‘},,‘)    print(va)    va = va.split(‘,,,‘)    print(va)    index = 1    for data in va:        try:             dict = json.loads(data)             print(dict)             imgname=‘img2/‘+path+text+‘/‘+dict[‘title‘]+str(index)             index+=1             mkdir(‘img2/‘+path+text)             imgid=dict[‘imageId‘]             downloadimage(imgid,imgname)        except Exception as e:            print(e)if __name__ == ‘__main__‘:    num=input("高质量大图带水印输入1,普通不带水印输入2:")    num=int(num)    free=‘‘    if num==2:        free=‘free/‘    text = input(‘输入关键词:‘)    getText(text,free)

这样,整个流程就完成了,对于目录方面,我也对图虫有水印的和没水印的进行了区分,供大家使用。在使用方面,先输入1或2(1代表有水印高质量图,2代表共享图),在输入关键词即可批量下载。

在这里插入图片描述
在这里插入图片描述
最后,如果感觉可以的话欢迎点赞呗!欢迎关注笔者公众号:bigsai
IT圈不嫌多一个朋友,笔者也希望能成为你的朋友,共同学习,共同进步

原文地址:https://www.cnblogs.com/bigsai/p/11624354.html

时间: 2024-08-05 11:13:27

利用python爬虫关键词批量下载高清大图的相关文章

python爬虫 之 抓取高清图片

这个网站http://www.hbc333.com/是一个壁纸图片网站,提供各种分辨率的图片的下载,因此想写一个爬虫脚本批量下载这些图片. 经观察,2560*1600分辨率的图片的网址格式为:http://www.hbc333.com/size/2560x1600/n/ (n是页数), 每张预览图片的地址是:/data/out/253/46659416-watch-dogs-wallpaper.jpg, 而原图的链接则为:http://www.hbc333.com/data/out/253/46

加载高清大图崩溃问题

SDWebImage加载高清大图崩溃问题: 经验证没测试出来,在网上查找根源应该是在iOS7上有问题,特此记录一下 第一种:老版本SDWebImage_v4.2.0 更改源码 这里面对图片的处理是直接按照原大小进行的,如果几千是分辨率这里导致占用了大量内存. 1.在UIImage+MultiFormat 中增加方法,对图片做一次等比的压缩. +(UIImage *)compressImageWith:(UIImage *)image { float imageWidth = image.size

Python静态网页爬取:批量获取高清壁纸

前言 在设计爬虫项目的时候,首先要在脑内明确人工浏览页面获得图片时的步骤 一般地,我们去网上批量打开壁纸的时候一般操作如下: 1.打开壁纸网页 2.单击壁纸图(打开指定壁纸的页面) 3.选择分辨率(我们要下载高清的图) 4.保存图片 实际操作时,我们实现了如下几步网页地址的访问:打开了壁纸的网页→单击壁纸图打开指定页面→选择分辨率,点击后打开最终保存目标图片网页→保存图片 在爬虫的过程中我们就尝试通过模拟浏览器打开网页的操作,一步步获得.访问网页.最后获得目标图片的下载地址,对图片进行下载保存到

深度学习入门:基于Python的理论与实现 高清中文版PDF电子版下载附源代码

本书特色1.日本深度学习入门经典畅销书,原版上市不足2年印刷已达100 000册.长期位列日亚"人工智能"类图书榜首,超多五星好评.2.使用Python 3,尽量不依赖外部库或工具,从零创建一个深度学习模型.3.示例代码清晰,源代码可下载,需要的运行环境非常简单.读者可以一边读书一边执行程序,简单易上手.4.使用平实的语言,结合直观的插图和具体的例子,将深度学习的原理掰开揉碎讲解,简明易懂.5.使用计算图介绍复杂的误差反向传播法,非常直观.6.相比AI圣经"花书",

Python 实现 CNKI批量下载 和FireFox Extension 入门学习笔记

?                                 Python 实现 CNKI批量下载 和FireFox Extension 入门学习笔记? 由于需要也是为了督促自己学习新的东西,我原本想要尝试着写一个爬虫程序,能够在cnki上自动得将论文进行批量下载,学习过程中遇到了诸多情况,cnki也真是专业,不得不佩服cnki的强大. 下面进入正题: 学习.实验环境:ubuntu 14.04 工具:Eclipse ,  FireFox, FireBug,HttpFox 编程语言:pyth

分享 《Python机器学习经典实例》(高清中文版PDF+高清英文版PDF+源代码)

下载:https://pan.baidu.com/s/147VG6ub74qi-4xPvpSMP4w <Python机器学习经典实例>(高清中文版PDF+高清英文版PDF+源代码) 最新出版的Python机器学习经典实例.高清中文版,270页,带目录书签,文字可复制粘贴.高清英文版,295页,带目录书签,文字可复制粘贴.配有源代码. 经典书籍,讲解详细:其中,高清中文版如图: 原文地址:http://blog.51cto.com/14050756/2318941

Python源码剖析(高清版)PDF

Python源码剖析(高清版)PDF百度网盘链接:https://pan.baidu.com/s/1v0nalmMRYTJn1VTw-AHjxw 提取码:kjb4 复制这段内容后打开百度网盘手机App,操作更方便哦内容简介 · · · · · · 作为主流的动态语言,Python不仅简单易学.移植性好,而且拥有强大丰富的库的支持.此外,Python强大的可扩展性,让开发人员既可以非常容易地利用C/C++编写Python的扩展模块,还能将Python嵌入到C/C++程序中,为自己的系统添加动态扩展

内涵段子视频怎么下载到本地?怎么下载高清内涵视频?

之前分享了如何下载今日头条.西瓜视频到手机相册的方法,然后就有朋友私信问我怎么在电脑上下载内涵段子的视频呢?由于小编之前没怎么了解过内涵视频这个App,所以感觉很奇怪,为什么问内涵视频的这么多呢?原来内涵视频.内涵段子这两个App也是今日头条公司的. 今天就教教大家如何下载内涵段子视频到本地,这个方法电脑和手机上都适用哦.并且支持下载高清版本的内涵视频. 1. 如果是电脑上,在单个视频播放页面(注意是单个,不是列表),复制地址栏中的视频页面链接. 2. 如果是手机上,打开内涵视频App或内涵段子

《Python机器学习基础教程》高清中文版PDF+高清英文版PDF+源代码

资源链接:https://pan.baidu.com/s/1sa64QTsQ7A5WlZxMuNmYHg<Python机器学习基础教程>高清中文版PDF+高清英文版PDF+源代码高清中文版PDF,306页,带目录和书签,文字能够复制粘贴:高清英文版PDF,392页,带目录和书签,彩色配图,文字能够复制粘贴:中英文两版可以对比学习.配套源代码:经典书籍,讲解详细:其中,高清中文版如图: 原文地址:http://blog.51cto.com/14063572/2317004