当前位置:   article > 正文

2024年网安最新【python】爬取4K壁纸保存到本地文件夹【附源码】

2024年网安最新【python】爬取4K壁纸保存到本地文件夹【附源码】

华为云
https://mirrors.huaweicloud.com/repository/pypi/simple/

腾讯云
https://mirrors.cloud.tencent.com/pypi/simple/



### 效果图:


![](https://img-blog.csdnimg.cn/direct/67ab60e5f0bc41a5a24cdefd4b80d868.png)


### 代码详解:


1. `get_imgurl_list(url, imgurl_list)` 函数用来获取指定页面中的图片链接,并将这些链接存储在 `imgurl_list` 列表中。



> 
> 
> 	* 使用 `requests.get(url=url, headers=headers)` 发起请求获取页面内容。
> 	* 使用 `etree.HTML(html_str)` 将页面内容转换为 etree 对象,方便后续使用 XPath 进行解析。
> 	* 通过 XPath 定位到图片链接,并添加到 `imgurl_list` 中。
>
2. `get_down_img(imgurl_list)` 函数用来下载图片到本地存储。



> 
> 
> 	* 创建名为 "美女" 的文件夹用于存储下载的图片。
> 	* 遍历 `imgurl_list` 中的图片链接,逐个下载图片并保存到本地文件夹中。
>
3. 在 `if __name__ == '__main__':` 部分:



> 
> 
> 	* 设置需要爬取的页数 `page_number = 10`。
> 	* 循环构建每一页的链接,如 `https://www.moyublog.com/95-2-2-{i}.html`。
> 	* 调用 `get_imgurl_list()` 函数获取图片链接。
> 	* 调用 `get_down_img()` 函数下载图片到本地。
>


### 代码流程:


1. 导入必要的库和模块:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

import requests # 用于发送HTTP请求
from lxml import etree # 用于解析HTML页面
import time # 用于控制爬取速度
import os # 用于文件操作


1. 定义函数`get_imgurl_list(url, imgurl_list)`用于获取图片链接:



  • 1
  • 2
  • 3
  • 4
  • 5

def get_imgurl_list(url, imgurl_list):
headers = {
‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36’
}
response = requests.get(url=url, headers=headers)
html_str = response.text
html_data = etree.HTML(html_str)
li_list = html_data.xpath(“//ul[@class=‘clearfix’]/li”)
for li in li_list:
imgurl = li.xpath(“.//a/img/@data-original”)[0]
imgurl_list.append(imgurl)


* 发送GET请求获取网页内容。
* 将网页内容转换为etree对象以便后续使用xpath进行解析。
* 使用xpath定位所有的li标签,并遍历每个li标签获取图片链接,将链接添加到`imgurl_list`列表中。


1. 定义函数`get_down_img(imgurl_list)`用于下载图片:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

def get_down_img(imgurl_list):
os.mkdir(“美女”)
n = 0
for img_url in imgurl_list:
headers = {
‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36’
}
img_data = requests.get(url=img_url, headers=headers).content
img_path = ‘./美女/’ + str(n) + ‘.jpg’
with open(img_path, ‘wb’) as f:
f.write(img_data)
n += 1


* 创建名为"美女"的目录用于存放下载的图片。
* 遍历图片链接列表,逐个发送GET请求下载图片数据,并将图片写入本地文件。每张图片以数字编号命名。


1. 主程序部分:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

if name == ‘main’:
page_number = 10 # 爬取页数
imgurl_list = [] # 存放图片链接
for i in range(0, page_number + 1):
url = f’https://www.moyublog.com/95-2-2-{i}.html’
print(url)
get_imgurl_list(url, imgurl_list)
get_down_img(imgurl_list)



> 
> * 设定要爬取的页数`page_number`为10。
> * 初始化存放图片链接的列表`imgurl_list`。
> * 循环构建每一页的链接并调用`get_imgurl_list()`函数获取图片链接。
> * 最后调用`get_down_img()`函数下载图片到本地"美女"文件夹。
> 
> 
> 


### 为什么我们在获取数据的过程中需要用到IP池



> 
> 1. **应对反爬虫策略**:许多网站会采取反爬虫措施,限制单个IP的访问频率或次数。通过使用数据获取服务,可以轮换多IP来模仿多个用户访问,降低被封禁的风险。
> 2. **保证稳定性**:有些数据获取服务可能存在不稳定的情况,包括IP连接速度慢、IP被找到等问题。通过建立数据获取服务,可以预先准备多个可用的IP地址,确保程序在某个IP不可用时可以快速切换到其他可用IP,提高爬虫程序的稳定性。
> 3. **提高访问速度**:IP池中的多个IP地址可以并发使用,实现多线程或异步请求,从而加快数据获取速度。通过在数据获取服务中保持一定数量的可用IP地址,可以实现更快速的数据抓取。
> 4. **应对封禁风险**:有些网站会根据某些特定的IP地址或IP段进行封禁,如果整个IP池中的IP都被封禁,可以及时更新IP池中的IP地址,避免影响爬虫程序的正常运行。
> 5. **降低被识别的风险**:当爬虫程序使用固定的IP地址进行访问时,容易被网站识别出是爬虫行为。
> 
> 
> 



![](https://img-blog.csdnimg.cn/direct/fdda1bb0dfc04466891aafdc051d7584.jpeg)



###  完整代码:


        


**先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7**

**深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**
![img](https://img-blog.csdnimg.cn/img_convert/48c064e5f9cb909747234be12ebebad8.png)
![img](https://img-blog.csdnimg.cn/img_convert/9c5da73f9fb65e4231edef2e2ec5e7f2.png)
![img](https://img-blog.csdnimg.cn/img_convert/7c0fc1e951909c278a393be188d6ca1d.png)
![img](https://img-blog.csdnimg.cn/img_convert/2b32b9d5e5b63423897fbba296f5dc61.png)
![img](https://img-blog.csdnimg.cn/img_convert/259730422a717efe23e811d4b5134a32.png)
![img](https://img-blog.csdnimg.cn/img_convert/7215106b4d887ec83eb5453e5fcdd037.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618540462)**
小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618540462)**
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/942790
推荐阅读
相关标签
  

闽ICP备14008679号