爬虫剑谱第八页(爬取糗图百科图片)

2023-10-22 11:50

本文主要是介绍爬虫剑谱第八页(爬取糗图百科图片),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

效果图:

首先准备第三库:
 

import requests
import re
import os

request:用于请求网页获取数据

re:正则表达式

os:操作文件

创建一个文件夹:

# 创建一个文件夹,用于保存爬取的图片
if not os.path.exists('./糗图百科'):os.mkdir('./糗图百科')

设置url以及和header头

url = "https://www.qiushibaike.com/imgrank/page/%d/"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.6241 SLBChan/15"
}

header头用于伪装爬虫,防止反爬机制检测

遍历每一个网页

for num in range(1, 5):new_url = format(url % num)repons = requests.get(url=new_url, headers=headers).text# text(字符串) json()(对象类型) content(二进制)# 使用聚焦爬虫对页面进行数据解析ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'img_src_list = re.findall(ex, repons, re.S)

 获取每一个网页的源码并进行数据解析

通过正则表达式获取到每一页的所有图片链接

对每一页每一张图片进行永久化保存

    for soc in img_src_list:soc = 'https:' + soc# 请求图片的二进制数据img_soc = requests.get(url=soc, headers=headers).content# 生成图片名称img_name = soc.split('/')[-1]# 图片储存的路径imgPath = './糗图百科/' + img_namewith open(imgPath, 'wb') as fp:fp.write(img_soc)print(img_name + "下载成功!")# i += 1

完整代码:

import requests
import re
import osi = 1
# 创建一个文件夹,用于保存爬取的图片
if not os.path.exists('./糗图百科'):os.mkdir('./糗图百科')
url = "https://www.qiushibaike.com/imgrank/page/%d/"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.6241 SLBChan/15"
}for num in range(1, 5):new_url = format(url % num)repons = requests.get(url=new_url, headers=headers).text# text(字符串) json()(对象类型) content(二进制)# 使用聚焦爬虫对页面进行数据解析ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'img_src_list = re.findall(ex, repons, re.S)for soc in img_src_list:soc = 'https:' + soc# 请求图片的二进制数据img_soc = requests.get(url=soc, headers=headers).content# 生成图片名称img_name = soc.split('/')[-1]# 图片储存的路径imgPath = './糗图百科/' + img_namewith open(imgPath, 'wb') as fp:fp.write(img_soc)print(img_name + "下载成功!")# i += 1
print("爬取完成")

这篇关于爬虫剑谱第八页(爬取糗图百科图片)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/261260

相关文章

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

基于Python开发批量提取Excel图片的小工具

《基于Python开发批量提取Excel图片的小工具》这篇文章主要为大家详细介绍了如何使用Python中的openpyxl库开发一个小工具,可以实现批量提取Excel图片,有需要的小伙伴可以参考一下... 目前有一个需求,就是批量读取当前目录下所有文件夹里的Excel文件,去获取出Excel文件中的图片,并

Java实现数据库图片上传与存储功能

《Java实现数据库图片上传与存储功能》在现代的Web开发中,上传图片并将其存储在数据库中是常见的需求之一,本文将介绍如何通过Java实现图片上传,存储到数据库的完整过程,希望对大家有所帮助... 目录1. 项目结构2. 数据库表设计3. 实现图片上传功能3.1 文件上传控制器3.2 图片上传服务4. 实现

Java实现数据库图片上传功能详解

《Java实现数据库图片上传功能详解》这篇文章主要为大家详细介绍了如何使用Java实现数据库图片上传功能,包含从数据库拿图片传递前端渲染,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、数据库搭建&nbsChina编程p; 3、后端实现将图片存储进数据库4、后端实现从数据库取出图片给前端5、前端拿到

Python使用PIL库将PNG图片转换为ICO图标的示例代码

《Python使用PIL库将PNG图片转换为ICO图标的示例代码》在软件开发和网站设计中,ICO图标是一种常用的图像格式,特别适用于应用程序图标、网页收藏夹图标等场景,本文将介绍如何使用Python的... 目录引言准备工作代码解析实践操作结果展示结语引言在软件开发和网站设计中,ICO图标是一种常用的图像

SpringBoot集成图片验证码框架easy-captcha的详细过程

《SpringBoot集成图片验证码框架easy-captcha的详细过程》本文介绍了如何将Easy-Captcha框架集成到SpringBoot项目中,实现图片验证码功能,Easy-Captcha是... 目录SpringBoot集成图片验证码框架easy-captcha一、引言二、依赖三、代码1. Ea

如何使用CSS3实现波浪式图片墙

《如何使用CSS3实现波浪式图片墙》:本文主要介绍了如何使用CSS3的transform属性和动画技巧实现波浪式图片墙,通过设置图片的垂直偏移量,并使用动画使其周期性地改变位置,可以创建出动态且具有波浪效果的图片墙,同时,还强调了响应式设计的重要性,以确保图片墙在不同设备上都能良好显示,详细内容请阅读本文,希望能对你有所帮助...