Python pyquery 获取千图网部分VIP 无水印原图

在工作时可能会需要很多的素材,千图网为我们提供了一个很好的平台,但多数图片需要开通VIP,今天分享一个可以绕过多数 VIP 才能够下载的方法
由于第一次写博客,会有语言不通或用词不专业等情况,还望多加斧正。

所需库: urllib.request pyquery urllib.parse

文章目录

  • 分析网页源码
  • 利用 pyquery 筛选所需信息

分析网页源码

分析网页源码
打开千图网中的一个素材图片
右键打开抓包工具,审查元素,
可以看到图示中的素材url在 id = show-area-height 标签下的img scr中
因此得到素材的 url: //preview.qiantucdn.com/58pic/35/76/35/auto_04f58PICt4IeBt75fhbbf_PIC2018.jpg!w1024_new_0
将得到的url复制到地址栏中,看到高清的素材图片展现在眼前。

但是发现并不是我们想要的高清、无水印、下载后免扣图便可直接使用的图片,因此产生一个问题,如何拿到素材真正的地址,而并非是网站用来向用户展示的图片?难道再去学一个PS?难道退而求其次只用这些残次品吗?
不,人向来追求美好,绝不能作罢。
接下来查看网页源代码。

首先进入眼帘的是网页的编码格式为 " gbk ",在后续会用到。
其次,可以看到素材的 url 在 meta 中 content 也有出现。

这些有什么用处我们暂且不谈,先来根据 meta 中的content 中的url,再打开另外的一些素材图片:
//preview.qiantucdn.com/58pic/35/76/35/auto_04f58PICt4IeBt75fhbbf_PIC2018.jpg!w1024//preview.qiantucdn.com/58pic/35/76/35/auto_04f58PICt4IeBt75fhbbf_PIC2018.jpg!w1024_water

//preview.qiantucdn.com/58pic/35/74/79/auto_17658PIC9b2iMREdv697d_PIC2018.jpg!w1024_water

//preview.qiantucdn.com/58pic/35/74/86/png_auto_81X58PIC888fefc2s9GJK_PIC2018.jpg!w1024_water

//preview.qiantucdn.com/original_origin_pic/19/03/17/auto_709be0eaf77adfa23d73936042ac6290_PIC2018.jpg!w1024_water

在这些素材url中,我们可以观察到前两个 url 格式较为统一,而后两者则各有不同。因为第一次写博客,所以这次之讲述其中一种格式的下载方式。

有兴趣的可以自己找一找后两者的下载方式,当然也可以扫描文章末尾的二维码获取所有格式完整的代码。

接下来,继续讨论如何找到无水印的素材地址,以第一种格式为例:

//preview.qiantucdn.com/58pic/35/76/35/auto_04f58PICt4IeBt75fhbbf_PIC2018.jpg!w1024_water

//preview.qiantucdn.com/58pic/35/74/79/auto_17658PIC9b2iMREdv697d_PIC2018.jpg!w1024_water

观察到这种格式的 url 均以//preview.qiantucdn.com/ 开头,不一样是后方的地址。

这时候我们是否想到可以将其后的内容理解为服务器储存该素材的一个编号。像是每位员工都有唯一工号。
但是只有工号,没有部门,岂不是很难管理?

千图网的网址是什么?
https://www.58pic.com/ 像不像一个部门?

俗话说,撑死胆大的,我们不如大胆的来猜想一下,部门,加工号,确定一个员工的工作地点。
所以,https://www.58pic.com/ + 58pic/35/74/79/auto_17658PIC9b2iMREdv697d_PIC2018.jpg!w1024_water

得到一个?没错,崭新的url。

新生儿url:https://www.58pic.com/58pic/35/74/79/auto_17658PIC9b2iMREdv697d_PIC2018.jpg!w1024_water
满怀激动的心情复制到地址栏打开。竟是 …… 404失联

这是什么原因呢?难道是大胆,穷有大胆?出生牛犊不怕虎吗?

有没有听说过这样一则笑话?
一位小学生写到:我的妈妈是一位不到40岁的中年妇女?
“都中年妇女了,还40,40多余的”
“哦,我的妈妈是一位不到40岁多余的中年妇女”

听完笑话了,继续我们的探讨。在这里,就不卖关子了。第一次写博客还挺紧张的。直接奉上真正的下载地址,我们来观察一下。

正宗url: http://apifont.58pic.com/index.php?c=Download&a=downPng&im=//58pic/35/76/35/04f58PICt4IeBt75fhbbf_PIC2018.png

打开后,惊讶??? 直接下载?但是怎么没有自动命名呢?


不管了,我们先来下载看看是否是无水印的素材。
高清,无水印?可以直接使用?实现了?
没错的,这样我们就拿到了真正的下载地址。

来分析一下这个 url:
http://apifont.58pic.com/index.php?c=Download&a=downPng&im=//58pic/35/76/35/04f58PICt4IeBt75fhbbf_PIC2018.png

再来对比我们拼凑的 url:
https://www.58pic.com/58pic/35/74/79/auto_17658PIC9b2iMREdv697d_PIC2018.jpg!w1024_water

我们发现,原来是我们部门错了,部门应该是:http://apifont.58pic.com/index.php?c=Download&a=downPng&im=//

但是,这一部分是如何得到呢?还是那句话,第一次写博客,很紧张,扫描文章末二维码,获得详细解释资料。

再有不同就是 url 中的 auto_ 消失,以及 jpg!w1024_water 被 png 所取代。
所以我们得到真正的下载地址组合方式 http://apifont.58pic.com/index.php?c=Download&a=downPng&im=// + 编号 + .png

对于这个编号,还是上文中提到的工号。按照这个思路,我们来试一试下面的素材url:
//preview.qiantucdn.com/58pic/35/74/79/auto_17658PIC9b2iMREdv697d_PIC2018.jpg!w1024_water

取编号:58pic/35/74/79/auto_17658PIC9b2iMREdv697d_PIC2018

去除auto_:58pic/35/74/79/17658PIC9b2iMREdv697d_PIC2018

组合:又是一个新的url:(http://apifont.58pic.com/index.php?c=Download&a=downPng&im=//58pic/35/74/79/17658PIC9b2iMREdv697d_PIC2018.png)

先来试一试,复制粘贴后

又是一个不自动命名的文件,讨厌。
先下载看一看

我们手动将其后缀改为图片的格式 .png 或者 .jpg
两个素材均无水印,可以直接使用。

按照此思路,我们用代码实现抓取,以及未自动命明的情况在代码中会实现。

利用 pyquery 筛选所需信息

import urllib.request as ut
from urllib.parse import unquote,quote
from pyquery import PyQuery as pq
def get_imageurl(url = None):headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'}url = urlbase_url =  'https://apifont.58pic.com/index.php?c=Download&a=downPng&im=/'# 在分析中提到的部门,如有疑问,请到分析中回顾req = ut.Request(url = url,headers = headers)response = ut.urlopen(req).read().decode('gbk')#分析中有提到网页格式为 gbk 格式所以要解码data = pq(response)#基本操作,不用多解释吧?image_url = data('meta').items()# 获取分析中的 content 中的 urlname = data('title').text()# 同分析中的content中的意思,获取 title 中的图片名称url_1 = base_url_2 + j[23:39] + j[44:73] + ".png&title=" + quote(name)'''首先来解释一下 &title + quote(name) 添加title的目的是实现自动命名,而命名的内容便是 name 而 name 为中文格式,可能会出错,所以要转为 url 编码格式'''print(url_1)#至此,实现找出真正的下载地址if __name__ == '__main__': # 程序入口url = 'https://www.58pic.com/newpic/35747917.html' #要下载的素材网址get_imageurl(url) # 在函数中实现功能

在上文中提到,这只是其中的一种解析格式,还有另外的4、5 种解析格式。
在此篇博客中只叙述了格式为:
//preview.qiantucdn.com/xxxxxx/auto_xxxxxxxx.jpg!w1024_water

的解析方法,其它格式的解析方法,请扫描下方二维码获取,或 等待后续博客。

本讲至此结束。感谢您的浏览。

Python 爬虫 目标:千图网VIP高清无水印下载即用相关推荐

  1. python爬取王者荣耀全皮肤高清无水印图片

    前期准备:安装requests库,我猜你可能需要: Python网络爬虫与信息提取笔记01-Requests库入门 Windows下安装pip和换源 import os import requests ...

  2. 电脑动态壁纸_每日壁纸—水彩插画少女动漫手机高清无水印壁纸第二波

    - End - 猜你喜欢: 看新闻竟然可以赚钱??? 朋友圈千万别设置三天可见!哈哈哈~ 圣诞节,你收到过的奇葩礼物是什么? 教你玩赚支付宝红包攻略,如何领大额红包!!! 哈哈哈~现在的骗子真的一届不 ...

  3. 原相机水印怎么改字_抖音/自媒体做影视二次剪辑,如何下载高清无水印视频?...

    很多想做影视二次剪辑的小伙伴,苦于不知道怎么获取到高清无水印视频,话不多说. 直接上干货,分享3个能帮到你的方法. 极简录屏.解析下载,磁力链接. 1.通过极简模式的录屏 优点:可以直接快速获取到需要 ...

  4. 二次元高清无水印壁纸

    高清无水印壁纸: 亚丝娜 我妻由乃 伊蕾娜 阿库娅 艾丽斯 艾米莉亚 蕾姆 楪祈 维克多利亚 瑞吉尔 白井黑子 山乃柠檬 千石抚子 藤和艾莉欧

  5. 独家免费资源:《成长的烦恼》全7季在线高清无水印播放!

    <成长的烦恼>是我小时候非常热爱的一部美剧,印象中这也是唯一一部在中国电视上播放的美剧. 这部电视剧每一集通过一些小段子,告诉观众一些深刻的道理! 在互联网时代,我一直尝试在网上找到其高清 ...

  6. python-下载某短视频平台视频(高清无水印)

    python-下载某短视频平台音视频(高清无水印) 前言 1.获取视频 url 2.发送请求 3.数据解析 4.本地保存 5.完整代码 前言 1.Cookie中文名称为小型文本文件,指某些网站为了辨别 ...

  7. 商用图片素材,高清无水印

    今天给大家分享8个免费.商用图片素材网站,全部高清无水印,轻松应对各种场景. 1.菜鸟图库 https://www.sucai999.com/pic.html?v=NTYwNDUx 菜鸟图库是一个综合 ...

  8. 干货速收藏!影视混剪必备的5个素材网站,高清无水印资源下载

    现在在自媒体平台发布自己的原创视频,有播放量就会有一定的创作收益. 有不少人都想做自媒体,却又不想真人出镜,想做素材混剪类的二次剪辑创作,又不知道去哪里找素材. 今天大周给你们分享几个可以找影视素材资 ...

  9. 考研数学二真题1987年-2022年所有历年真题及详解(高清无水印)

    下载链接:考研数学二真题1987-2022年所有历年真题及解析(高清无水印)https://download.csdn.net/download/m0_57324918/87483974 历年试卷真题 ...

  10. 考研数学一真题1987年-2022年所有历年真题及详解(高清无水印)

    下载链接 考研数学一真题1987年-2022年历年真题及详解(高清无水印)-其它文档类资源-CSDN下载考研数学一真题1987年-2022年所有历年真题及详解(高清无水印)1987-2022数学一历年 ...

最新文章

  1. 总结六条对我们学习Linux系统有用的忠告
  2. jquery 操作ajax 相关方法
  3. WebService注解
  4. skyline B/S模式下脚本实现输出视频
  5. 如何对比_潭酒红潭酱酒对比红花郎怎么样口感如何
  6. 希捷推2TB 2.5英寸SSHD和5TB 2.5英寸机械硬盘
  7. JVM调优:GC标记清除回收算法
  8. 2020.8.26广联达笔试第二题——魔法师四种元素平衡(Python)
  9. DiscoveryService.getRemoteAdvertisements是否会获得本地通告?
  10. python3 上传文件到目标机器_Python3 +服务器搭建私人云盘,再也不怕限速了
  11. a=a++问题引发的思考
  12. Atitit vod click event design flow  视频点播系统点击事件文档
  13. 小米进军欧洲智能手机市场:一面是狂欢,一面是考验...
  14. 3300字详解闲鱼上如何找到爆款品类?
  15. 洛谷——P1160 队列安排
  16. 手机淘宝app、xsign签名算法
  17. 如何证明pi是无理数
  18. 通俗解释什么是NFT,NFT到底是什么
  19. 大内高手 内存管理器
  20. 云监控介绍 - Amazon CloudWatch

热门文章

  1. php唯美博客,24个很酷的PHP开源库
  2. 25年前,开发者如何将游戏塞进内存?
  3. Google Play 政策更新重点回顾 (上) | 2022 年 4 月
  4. Java各种规则引擎
  5. 深度 DeepinXP-Lite V5.9
  6. 硬盘分区文件系统成raw格式,无法打开访问
  7. 单模和多模光纤的区别是什么?
  8. 光纤跳线接口_综合布线与弱电工程:跳线、尾纤、光纤接口,一文讲明白
  9. celery(分布式任务队列)介绍+在django中异步回调使用+定时任务的使用
  10. 衣带渐宽终不悔为伊消得人憔悴,土蜂蜜科技终成正果