全网最细------爬取4k高清大图

news2024/10/5 18:24:04

         本次案例将教大家免费爬取4k高清大图,即使你是爬虫新手,也可以食用本次文章实现你的免费下载梦,话不多说,先看效果

网站视图:

看到这些图片你是否怦然心动,跟着我一起看下去.
在这里插入图片描述

一.思路分析

        首先最基本的是获取每张图片的链接,然后下载;获取链接的方式:查看网页源代码,发现每张图片的部分url在源代码中,此时只需要找出缺失url然后拼接,即可获取图片的完整链接。
        获取每张图片的链接后,进行遍历,获取原始图片名字作为图片保存名;将图片保存在指定目录,每下载一张图片,打印输出下载完成.

二.技术支撑

1.os创建指定文件夹

1.1判断文件夹是否存在

os.path.exists(path) # path是文件夹或者文件的相对路径或者绝对路径

1.2创建一级文件夹
          创建一级文件是指,被创建文件夹的上级文件夹都存在。只创建最后一层文件夹,如果中间某一层文件夹不存在,将报错,可以先使用os.path.exists()判断.

os.mkdir(r'C:\Users\123\demo1\test1')
#只会创建test1文件夹,前提是前面的文件夹都存在,否则将会报错

1.2创建多级文件夹

os.makedirs(r'C:\Users\123\demo1\test1\test2')
2.lxml相关知识(可以在csdn搜索相关文章进行系统学习)

三.逐步分析及代码实现

1.获取图片部分url链接

通过开发者工具,可以发现在网页源代码中有图片的部分链接但不完整
在这里插入图片描述

2.获取图片完整url链接

如何获取前半部分链接?这时候可以查看网络选项
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.代码实现
import requests
from lxml import etree
import os
url="http://pic.netbian.com/4kdongman/"
headers={
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.3161 SLBChan/29"
}
response=requests.get(url=url,headers=headers)
response.encoding=response.apparent_encoding
text=response.text

tree=etree.HTML(text)
lis=tree.xpath('//div[@class="slist"]//li')
if not os.path.exists("./imgs1"):
    os.mkdir("./imgs1")
for li in lis:
    src="http://pic.netbian.com"+li.xpath('./a/img/@src')[0]
    name=li.xpath('./a/img/@alt')[0]+".jpg"
    img_path="imgs1/"+name
    img_data=requests.get(url=src,headers=headers).content
    with open(img_path,"wb") as fp:
        fp.write(img_data)
        print("下载完成")


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/196144.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaEE】并发编程(多线程)线程安全问题内存可见性指令重排序

目录 第一个问题:什么是线程安全问题? 第二个问题:为什么会出现线程安全问题? 第三个问题:如何解决多线程安全问题? 第四个问题:产生线程不安全的原因有哪些? 第五个问题&am…

模板进阶(包含特化)

非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。 非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量…

CSS(基础,面试,常见用例)

CSS规则【*】CSS选择器一、 CSS选择器二、选择器匹配原理三、优先级 / 权重四、可继承 / 不可继承样式属性【*】盒模型一、盒模型二、box-sizing属性三、offsetWidth、clientWidth、scrollWidth**【*】em/px/rem/vh/vw的区别一、CSS单位二、px三、em四、rem五、vh、vw六、%百分…

基于spring生态的基础后端开发及渗透测试流程

这是一篇记录如何从建仓开始到最后安全测试完整流程的笔记,使用的spring生态,目的是为spring的基础后端开发及后期渗透测试打一个模板。本篇采用springSecurity作为安全框架,搭载了redis-cache、spring-valid等功能,并开放了OAuth…

实测十款连锁店管理系统,专为纠结的连锁店老板打造!

普通的数据工具、人工管理难以满足连锁店老板们的需求,正所谓“有需求就有市场”,随着连锁店、加盟店如雨后春笋般在城市里出现,连锁店管理系统也越来越多。究竟哪一款连锁店管理系统,才能满足老板们的需求?不用纠结了…

park unpark 原理

1、基本使用 // 暂停当前线程 LockSupport.park();// 恢复某个线程的运行 LockSupport.unpark(暂停线程对象) 先 park 再 unpark public class Test1 {public static void main(String[] args) throws InterruptedException {Thread t1 new Thread(() -> {log.debug(&q…

「自控元件及线路」1.2 电机中的磁性材料与磁场

本节介绍磁性材料的性能、分类 本节介绍电机中永磁材料的工作曲线 本节介绍电机中主磁极、电枢的磁场及电枢反应 文章目录磁性材料的基本概念磁性材料的磁性能高导磁性 饱和性 磁滞性 非线性温度特性 电阻率特性铁耗磁性材料的分类电机中的永磁材料永磁电机概述永磁材料的磁性能…

mysql:聊聊mysql学完之后心得,从哪里学,学哪些,怎么选课程,学到什么程度。

mysql:聊聊mysql学完之后心得,从哪里学,学哪些,怎么选课程,学到什么程度。 学习完一套课程之后习惯性总结一下。首先说一下,咕咕是跟着尚硅谷的康老师学习的mysql,大家想学习的话可以直接去b站…

Java文件IO操作及案例

文章目录一. 文件概述1. 狭义和广义上的文件2. 文件的分类3. 文件的路径二. 针对文件系统的操作1. File类的属性和构造2. File类的获取操作3. File类的判断操作4. 文件的创建和删除5. 其他的常用方法三. 对文件内容进行读写1. IO流对象2. 文件的读操作3. 文件的写操作4. Scanne…

vim使用入门

目录vim模式介绍1.1 模式介绍1.2 模式之间切换1.3 进入vim1.4 退出vimvim模式介绍 1.1 模式介绍 vim具有6种基本模式和5种派生模式。 6种基本模式如下: 普通模式 vim启动后的默认模式。使用编辑器命令,比如移动光标,删除文本等等 普通模式进…

智能指针(二)—— unique_ptr、shared_ptr 的简单模拟实现

智能指针其实就是资源管理权限的转移,自己不想手动释放,交给一个对象管理,对象什么时候被销毁,这块资源也就什么时候被释放。unique_ptr 、shared_ptr 和weak_ptr 之间的区别如下: unique_ptr:字面意思是…

非全研究生开题-室内定位最新研究论文总结-1

序言 时间飞逝,23年3月底之前要把开题报告和综述写好。开学后研究了2个方向:serverless冷启动和室内定位; 春节期间在这2个选题之间犹豫不决,不断在心里面分析 经过反复比较对比,决定研究室内定位,也可以为后续完善产品,甚至后面创业打下基础。 后面我会持续深入,在…

【数据结构】链表必做题

写在开头学完链表,我们就要适当做一些题目来巩固知识,下面的一些精选题难度适中,很适合初学者练手。做题之前我们来了解一点概念,就是链表调用传参时,我们什么时候使用一级指针,什么时候使用二级指针&#…

在Linux上安装Maven和配置Maven仓库(v3.8.7)

记录:369场景:在CentOS 7.9操作系统上,使用apache-maven-3.8.7安装Maven和配置Maven仓库。版本:JDK 1.8apache-maven-3.8.7名词:Apache Maven:Apache Maven is a software project management and comprehe…

31_内存马

内存马 一、php内存马(不死马) 原不死马文件是生成一个一句话木马文件之后,自动删除自身,并且抑制报错 即使删除生成的一句话木马文件 也会不断的继续生成一句话木马文件 除非重启服务,才能停止继续生成 <?php error_reporting(0);//抑制报错 unlink(__FILE__);//删除…

【工具】iOS代码混淆工具-iOS源码混淆

最新更新记录 V2.0.3&#xff08;2022年12月11日&#xff09;更新内容&#xff1a; 1、新增导入映射列表的逻辑&#xff1b; 2、优化修复其他混淆逻辑&#xff1b; 3、更新地址 - github 主要功能 ZFJObsLib是专业的iOS源码混淆工具&#xff0c;具体功能有方法混淆、属性…

AcWing 1082. 数字游戏(数位DP)

AcWing 1082. 数字游戏&#xff08;数位DP&#xff09;一、问题二、数位DP三、思路分析四、代码一、问题 二、数位DP 这道题是在一个区间内挑选满足某个条件的数&#xff0c;这是一个非常典型的数位DP的特点。 这道题是一道数位DP的题目&#xff0c;其实数位DP更像我们在高中…

5-TAMRA-TSA,5-TAMRA-Tyramide,5-四甲基罗丹明-酪酰胺

【中文名称】5-四甲基罗丹明-酪酰胺&#xff0c;5四甲基罗丹明酪酰胺【英文名称】 5-Tamra-Tyramide&#xff0c;5-TAMRA-Tyramide&#xff0c;5-Tamra-TSA&#xff0c;5-TAMRA-TSA【CAS】N/A【纯度标准】95%【包装规格】5mg&#xff0c;10mg&#xff0c;25mg【是否接受定制】可…

spring springboot关于异步线程实践案例

前言&#xff1a; 关于多线程的异步处理&#xff0c;由于项目的需求有个方法需要使用异步的方法来调用&#xff0c;方法是调用外部的接口&#xff0c;执行时间会比较长导致的没有办法同步拿去到结果&#xff0c;所以需要写一个异步线程的方法进行该接口的调用&#xff0c;下面是…

Unity - UI适配方案记录

1.普通屏不同分辨率适配及预览 1.背景图 界面背景图建议至少宽于21:9&#xff1b;其中16:9的范围为精细范围&#xff0c;12:9的范围为真机最小可见范围。 2.组件 各组件通过设置RectTransform属性来达到正确适配的效果。 3.预览 在unity中&#xff0c;设置Game窗口左上角…