爬虫实战案例 -- 爬取豆瓣读书网页内容

  1. 进入网站检查信息 , 确定请求方式以及相关数据
    在这里插入图片描述

  2. 找到爬取目标位置
    在这里插入图片描述
    在这里插入图片描述

  3. 开始敲代码

# 链接网站
def url_link(url):res = requests.get(url,headers = headers)response = res.textparse_data(response)# 爬取信息
def parse_data(data):msg = '<li\sclass="media\sclearfix">.*?'\'<img\sclass="subject-cover".*?src="(.*?)"/></a>.*?'\'class="fleft"\shref="(.*?)">(.*?)</a>.*?'\'class="subject-abstract\scolor-gray">(.*?)</p>'result = re.findall(msg,data,re.S)for i in result:img_url = i[0]bookData = i[1]bookName = i[2]bookauthor = i[3].strip()print('图片信息:', img_url)print('详情链接:', bookData)print('书籍名字:', bookName)print('作者信息:', bookauthor)print('======================')keep_data(bookName,img_url,bookData,bookauthor)# 保存数据
def keep_data(img, data, name, author):# 创建文件夹if not os.path.exists('doubanData'):os.mkdir('doubanData')# 保存书籍信息with open("doubanData\db.json", "a", encoding="utf-8") as f:f.write("书籍名称:" + name + "\n")f.write("图片信息:" + img + "\n")f.write("书籍详情页:" + data + "\n")f.write('书籍作者:' + author + "\n\n")# 保存图片信息urlDta = requests.get(data).contentwith open('doubanData/{}.jpg'.format(img),'wb') as f:f.write(urlDta)if __name__ == '__main__':# 设置爬取页数for i in range(1,6):url = f'https://book.douban.com/latest?subcat=%E5%85%A8%E9%83%A8&p={i}'print(f"正在爬取第{i}页")print("====================================================================")url_link(url)

最终效果
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

在 CentOS 上使用 Docker 运行 RabbitMQ

在 CentOS 上使用 Docker 运行 RabbitMQ 使用Docker来运行RabbitMQ非常方便&#xff0c;以下是一个简单的步骤&#xff0c;以YAML配置文件方式创建和运行RabbitMQ容器。 构建容器 创建Docker Compose文件 创建一个docker-compose.yml文件&#xff0c;内容如下&#xff1a; …

C# 将 Word 转化分享为电子期刊

目录 需求 方案分析 相关库引入 关键代码 Word 转 Pdf Pdf 转批量 Jpeg Jpeg 转为电子书 实现效果演示 小结 需求 曾经的一个项目&#xff0c;要求实现制作电子期刊定期发送给企业进行阅读&#xff0c;基本的需求如下&#xff1a; 1、由编辑人员使用 Microsoft Word…

MyBatis-Plus如何 关闭SQL日志打印

前段时间公司的同事都过来问我&#xff0c;hua哥公司的项目出问题了&#xff0c;关闭不了打印sql日记&#xff0c;项目用宝塔自己部署的&#xff0c;磁盘满了才发现大量的打印sql日记&#xff0c;他们百度过都按照网上的配置修改过不起作用&#xff0c;而且在调试时候也及为不方…

mysql的asc和desc全称

原文&#xff1a;http://t.csdnimg.cn/BJ2sUhttp://t.csdnimg.cn/BJ2sU

[AutoSar]基础部分 RTE 02 S/R Port 显式/隐式

目录 关键词平台说明一、显式&#xff08;Explicit&#xff09;和隐式&#xff08;Implicit&#xff09;1.1 显式模式1.1.1code 二、隐式模式2.1 code 三、区别 关键词 嵌入式、C语言、autosar、EcuM、Rte 平台说明 项目ValueOSautosar OSautosar厂商vector芯片厂商TI编程语…

字符串逆序输出

逆序输出就是本来abc输出的&#xff0c;然后我想让他输出成cba&#xff0c;那么我们还是要用到for循环&#xff0c;只不过原先是从零开始往上加&#xff0c;这回呢&#xff0c;是从上面往下减 我们观察上面这个图片&#xff0c;我们想要输出olleh&#xff0c;那么我们就要从4开…

2023 英特尔On技术创新大会直播 |探索视觉AI的无限可能

2023 英特尔On技术创新大会直播 | 探索视觉AI的无限可能 前言一未来的 AI&#xff1a;释放视觉 AI 真正潜力二AI技术突破、视觉Al挑战及前沿研究创新三全尺度视觉学习全尺度视觉学习示例1.GridConv 实现三维人体姿态估计更高准确率2.KW 预训练及迁移模型性能3.无数据增强稠密对…

Gin之GORM事务(转账操作)

禁用默认事务的操作 为了确保数据一致性,GORM 会在事务里执行写入操作(创建、更新、删除)。如果没有这方面的要求,您可以在初始化时禁用它,这将获得大约 30%+ 性能提升。 // 全局禁用 db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{SkipDef…

基于DSP的IIR数字滤波器(论文+源码)

1.系统设计 在本次基于DSP的IIR数字低通滤波计中&#xff0c;拟以TMS320F28335来作为系统的主控制器&#xff0c;通过ADC0832模数转换芯片来对输入信号进行采集&#xff1b;通过TLC5615来将低通滤波后的信号进行输出&#xff1b;同时结合MATLAB仿真软件&#xff0c;对设计的II…

为什么GRU和LSTM能够缓解梯度消失或梯度爆炸问题?

1、什么是梯度消失&#xff08;gradient vanishing&#xff09;&#xff1f; 参数更新过小&#xff0c;在每次更新时几乎不会移动&#xff0c;导致模型无法学习。 2、什么是梯度爆炸&#xff08;gradient exploding&#xff09;&#xff1f; 参数更新过小大&#xff0c;破坏了…

vue3+vite静态页面部署到gitee pages

vue3vite静态页面部署到gitee pages gitee创建开源仓库修改项目部署到gitee中 随着vue3的成熟&#xff0c;vue2将在2023.12.31停止维护&#xff0c;所以有必要搞一下vue3项目静态页面怎么部署到gitee中了 如果还有想部署vue2静态页面到gitee中的话&#xff0c;访问https://blog…

【小呆的力学笔记】弹塑性力学的初步认知二:应力分析(1)

文章目录 1.1 一点的应力状态1.2 一点主应力状态1.3 应力偏张量、球张量、应力不变量 1.1 一点的应力状态 物体在受到外力或者自身不均匀的温度场等作用时&#xff0c;在其内部会产生内力&#xff0c;物体的内力与方向和截面都有关系。假设有一个受到外力作用的变形体&#xf…

ros2 学习04 工作空间说明及示例

ros2 术语说明&#xff1a; 大家在学习其他的开发语言之前的学习和开发中&#xff0c;应该有接触过某些集成开发环境&#xff0c;比如Visual Studio、Eclipse、Qt Creator等&#xff0c;当我们想要编写程序之前&#xff0c;都会在这些开发环境的工具栏中&#xff0c;点击一个“…

c语言力扣题目:消失的数字(有关时间复杂度O(N²)O(N))以及对异或操作符的更深入的理解(如何用人脑的十进制去考量二进制)

目录 Way One :暴力求解,时间复杂度为 O(N) 代码1 Way Two : 时间复杂度限制到 O(N) 代码及其详解 如题 Way One :暴力求解,时间复杂度为 O(N) 大体思路:比如这里我们需要处理的整型数组是"3,0,1",我们可以用冒泡排序或者 qsort函数将他从大到小进行排序成"…

SpringBlade export-user SQL 注入漏洞复现

0x01 产品简介 SpringBlade 是一个由商业级项目升级优化而来的 SpringCloud 分布式微服务架构、SpringBoot 单体式微服务架构并存的综合型项目。 0x02 漏洞概述 SpringBlade v3.2.0 及之前版本框架后台 export-user 路径存在安全漏洞,攻击者利用该漏洞可通过组件customSqlS…

手把手教你在 windows 上安装 Docker

前言 大家好&#xff0c;我是潇潇雨声&#xff0c;今天为大家带来一篇关于在 Windows 环境下使用 Docker 的教程。对于 Docker&#xff0c;我们可以简单地将其看作一种方便的软件安装方式&#xff0c;而无需深入涉及其复杂的概念。选择使用 Docker 主要是为了省事&#xff0c;比…

动态规划系列 | 一文搞定区间DP

文章目录 特点石子合并题目描述问题分析程序代码复杂度分析 环形石子合并题目描述问题分析程序代码复杂度分析 能量项链题目描述问题分析程序代码复杂度分析 加分二叉树题目描述问题分析程序代码复杂度分析 凸多边形的划分题目描述问题分析程序代码复杂度分析 棋盘分割题目描述…

STM32内部是怎么工作的

STM32是怎么工作的 1 从孩子他妈说起2 早期计算机的组成2.1 五大元件&#xff08;1&#xff09;第一个出场的是电容元件&#xff08;2&#xff09;第二个出场的是二极管&#xff08;3&#xff09;第三个出场的是电阻元件&#xff08;4&#xff09;第四个出场的是电感&#xff0…

现代雷达车载应用——第3章 MIMO雷达技术 3.1节 基于MIMO雷达的虚拟阵列合成

经典著作&#xff0c;值得一读&#xff0c;英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 3 MIMO雷达技术 自20世纪90年代末以来&#xff0c;带有少量天线的汽车雷达已被用于高级驾驶员辅助系统(ADAS)的目的。这些早期的汽车雷达主要提供目标…

Flask学习四:补充

插件 flask-caching 简介 Flask-Caching 是一个 Flask 扩展&#xff0c;旨在为 Flask 应用程序添加缓存功能。缓存是一种提高应用性能的技术&#xff0c;通过将常用数据暂时存储在一个快速访问的位置&#xff08;如内存或磁盘&#xff09;&#xff0c;从而减少对较慢资源&…