爬取千图网,居然还没水印!带上思路
昨天有个论坛上小哥们在我之前发的一篇帖子上留了言给我了一点启发,如何我晚上试了试,我靠,真把千图网的一个视频给爬下来了,今天早上一起床我就来试了试,本帖子是一遍写代码一遍打的,我会把我全部的思路都展现给你们看,我让那些在学习的人不要跟我一样走了很多弯路。打开某个模块查看图片链接
找独一无二的,接下来去源码里看看
打开它,算了算了,我这浏览器太智障 了,配图有点麻烦,接下来我就口述吧
那个链接打开是没有水印的大概是这样不过没有水印,然后继续打开别的网站
也是一样的套路,也没水印所以去水印的表达式就是http://preview.qiantucdn.com/58pic(.*?)!w1024_water
接下来就可以写代码了,还有一种方法,下载的图片是像素更高的,不过我不知道表达式咋写,他们用了一个不知道是啥,我网站构造不出来我只成功了一个,给你们放图图片太大,不方便上传,接下来就是成品图
代码:
链接:https://pan.baidu.com/s/13glBbRA6Cd0ClZRElCkuEA
提取码:rpbn
复制这段内容后打开百度网盘手机App,操作更方便哦
我的这个只能下载我点的模块的图片,如果 想要下载别的模块需要重新构造
另外这个表达式给你们:pic.qiantucdn.com/58pic(.*?)_pic2018.jpg
有些有水印的可以通过这个去掉,而且这个还是无损下载,网站上标码多少像素就是他的一半
md这个表达式又tm能使了,不管了import re
import urllib.request
for x in range(0,6):
url_da = "https://www.58pic.com/piccate/53-0-0-p"+str(x) +".html"
data_data = urllib.request.urlopen(url_da).read().decode('gbk','ignore')
data_tj = '<a href="//www.58pic.com/newpic/(.*?).html"'
data_p = re.compile(data_tj).findall(data_data)
for a in range(len(data_p)):
new_url = "http://www.58pic.com/newpic/" + str(data_p[a]) + ".html"
data = urllib.request.urlopen(new_url).read().decode("gbk","ignore")
tj_a = 'content="//preview.qiantucdn.com/58pic/(.*?)w1024_water"'
title_tj = '<span class="pic-title fl">(.*?)</span>'
p = re.compile(tj_a).findall(str(data))
tit_p = re.compile(title_tj).findall(str(data))
tit_p = tit_p[0]
for i in range(len(p)):
url = "http://preview.qiantucdn.com/58pic/" + str(p[i]) + "w1024_water"
file = "F:/bing/千图网/" + str(tit_p) + ".jpg"
urllib.request.urlretrieve(url,filename=file)
print("下载完成:" + tit_p)
print("已全部下载完成")#如果不成功应该是文件地址的问题修改一下file就可以了 null119 发表于 2019-7-20 17:46
楼主所说的“还有一种方法,下载的图片是像素更高的”,可以详细说明一下吗
是这篇帖子https://www.52pojie.cn/thread-991602-1-1.html liqi 发表于 2019-7-17 11:03
我去,我不知道为啥这个排版会那么乱,辛苦你们了
右上角有个纯文本勾上再编辑 我去,我不知道为啥这个排版会那么乱,辛苦你们了 好东西不怕乱{:301_997:} 看到就先赞一个!之前挺需要了 保存看看下次 感谢分享,共获提升 牛皮,学到了,不过凌乱美 楼主考不考虑出个视频 感谢楼主分享啊 看不懂怎么用??