无水印图片下载工具是一款十分好用的在线无损图片或者视频下载工具,内置了强大的地址解析器,用户可以在这里体验最简单的下载方式,让你的下载更简单。无水印图片和视频下载工具电脑版支持无损图片的下载,用户可以在这里快速下载海量的无损图片或者视频,在这里让你查看的时候更方便,不用担心下载过来的是模糊不清的那种。
无水印图片下载工具2020完美支持多家网站,我图网、千图网、图品汇等等,多家网站的支持,让用户可以在电脑上一键识别,让你的下载更方便。
无水印图片下载工具特色
体积轻巧,功能强大
支持多家网站
完美下载无损的图片或者视频
完美批量下载
无水印图片下载工具使用方法
第一课:图片资源页面分析
1、找到图片地址:在回车桌面找一张图片页面,如:https://www.enterdesk.com/bizhi/50790.html用chrome打开,按F12键打开检查页,点击一下左上角第一个箭头按钮,再点击图片页面正面的小图片就定位到小图片的在网页代码中的地址,如下图
小图片地址是https://up.enterdesk.com/edpic_360_360/32/5a/2f/325a2f10c236e3e3f5a15d82ca314daf.jpg
再点击图片上面的“查看清晰大图”进入大图页面,点击“高清显示”,就看到高清大图了,再一样按F12,
找到高清大图片地址:https://up.enterdesk.com/edpic_source/32/5a/2f/325a2f10c236e3e3f5a15d82ca314daf.jpg
看到红色的不同之处,就是说我只要把小图地址中的/edpic_360_360换成/edpic_source就能得到大图地址。
找到user-agent:同样是按F12,在network的headers下requests heades下可看到user-agent标志。这个标志是干什么用的,就相当于你电脑的标识,当访问网站时网站就会认为你是台电脑,就让你通过。如果没有带这个标识,某些网站的反爬虫机制就会阻止你访问。一些特别严格的网站反爬虫机制还会需要requests heades下的其他元素做标识判别你是不是爬虫。
第二课:单页图片爬取下载代码 enterdesk_01.py
查看网页代码所有小图片地址的路径,所有小图片都是在一个class='swiper-wrapper' 的DIV中,在这个DIV下又包含多个DIV,每个这样的DIV就包含一张小图的img元素,在img中的src就是小图片地址。
那Xpath的路径就是//div[@class='swiper-wrapper']/div/a/img/@src
@src 表示取img元素中的src的值。
因为有多张图片,我们可以构建一个列表img_list来存储所有图片地址信息。
如: img_list=[img1_url,img2_url,…………]
图片标题是在<h1class="myarc_h1">风车请吹走我的烦恼</h1> 这段代码中。
xpath路径就是//h1[@class='myarc_h1']/text()
text()表示取h1元素下的所有内容。
我们创建一个字符串ing_name存储标题。
以下是Python代码:
#随波逐流原创代码:回车桌面图片下载
import os
import requests
from lxml import etree #requests,lxml控件需要pip安装。什么?不会。小孩子一边玩去。
url="https://www.enterdesk.com/bizhi/50790.html"
headers={"user-agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}
response=requests.get(url,headers=headers) #获取网页
html_str=response.content.decode() #将页面内容转换成字符串
html=etree.HTML(html_str) #构造了一个XPath解析对象并对HTML文本进行自动修正
img_list=html.xpath("//div[@class='swiper-wrapper']/div/a/img/@src") #创建图片地址列表,获取图片地址
#print(img_list) #到这里可打印一下看看获取到的图片地址列表是否正确,最后可注释掉这行
img_name=html.xpath("//h1[@class='myarc_h1']/text()")[0].replace(" ","") #获取图片标题,replace替换掉标题中的空格
#print(img_name) #到这里可打印一下看看获取到的图片名称是否正确,最后可注释掉这行
try:
os.mkdir("{}".format(img_name)) #在程序目录下创建一个以“图片标题”命名的文件夹用来保存这一组图片
except:
pass
for url in img_list:
url=url.replace("edpic_360_360","edpic_source") #将小图地址替换成大图地址
filename=url.split("/")[-1] #获取图片文件名,split是删除网址中/号前所有字符包括/
#print(filename) #可打印一下文件名看是否获取成功,最后可注释掉这行
f = requests.get(url, headers=headers) #获取网页地址
with open(".\\{0}\\{1}".format(img_name,filename), "wb") as code: # 下载文件
code.write(f.content)
print("【{}】高清图片下载完成。".format(filename))
print("全部图片下载完成,保存在程序目录下【{}】文件夹下".format(img_name))
第三课:多级页面爬取。上面说的是一个页面下载一组图片,但我们往往需要的是下载一个类型的图片,如这个页面的上级目录是 壁纸-风景 https://www.enterdesk.com/zhuomianbizhi/fengjing/ 怎么下载这个类目下的所有地址呢?很简单啊,向上面的方法一样,先获取页面的每个资源页面地址,用循环重复上面下载单页面的步骤,就将所有页面下载了。