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

  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,一经查实,立即删除!

相关文章

处理器管理

(1) 为什么程序并发执行会产生间断性特征&#xff0c;并失去封闭性和可再现性&#xff1f; 解&#xff1a; 之所以产生间断性特征是因为多个程序在并发执行时&#xff0c;需要为了完成同一项任务而相互合作&#xff0c;并发执行的程序间的这种相互制约导致了“暂停—执行—暂…

Java Web Day03_CSS样式

一、超级链接伪类 <a href”#”>超级链接</>a:link 未点击前 a:hover 鼠标悬停 a:active 鼠标正在点击&#xff08;左键按着不放&#xff09; a:visited 点击后 加载顺序一般我们是按照&#xff1a;link -> visited -> hover -> active 列表样式 list-…

07-微服务架构之问题和解决方案的探讨

文章目录 前言一、服务发现与治理二、分布式数据管理三、分布式事务管理四、跨服务调用管理五、版本控制与发布管理六、运维管理 总结 前言 在上一章中&#xff0c;我们已经详细探讨了微服务设计的基本原则和步骤。现在&#xff0c;我们将开始实际运用微服务架构&#xff0c;然…

在 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…

KL散度、CrossEntropy详解

文章目录 0. 概述1. 信息量1.1 定义1.2 性质1.3 例子2. 熵 Entropy2.1 定义2.2 公式2.3 例子3. 交叉熵 Cross Entropy3.1 定义3.2 公式3.3 例子4. KL 散度(相对熵)4.1 公式

vue之全局请求loading

场景&#xff1a;我们往往在项目中会因为表单重复提交而烦恼&#xff0c;往往都会想到很高大上的两个词语——防抖、节流。但网上的很多方法都还是不够灵活、通用&#xff0c;那么下面介绍一下我的方法&#xff08;在最后&#xff09; 页面loading 往往都是一个页面写一堆loa…

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

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

docker查看日志

1、查看容器所有日志 docker logs <容器名称或ID> 2、查看容器最新日志 docker logs -f <容器名称或ID> 3、查看指定时间范围内的容器日志 docker logs --since<开始时间> --until<结束时间> <容器名称或ID> docker logs --since2022-01-0…

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开…

2024山东养老展,2024济南养老用品展览会5月27日开幕

飞鲨展览第六届中国&#xff08;济南&#xff09;国际养老服务业展览会&#xff0c;将于2024年5月27-29日举办&#xff1b; CSOLDE 2024第6届中国&#xff08;济南&#xff09;国际养老服务业展览会&#xff08;CSOLDE山东老博会&#xff09; CSOLDE 2024 sixth China (Jinan)…

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…

dart 学习之多个接口 以及mixin学习

如果一个类继承了多个接口&#xff0c;那么需要实现对应的所有方法 abstract class A {printA(); }abstract class B {printB(); }class C implements A, B {overrideprintA() {print("C.a");}overrideprintB() {print("C.b");} }mixin既不是继承也不是接…

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

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

3-智能合约介绍

存储合约示例 //说明源代码是根据GPL 3.0版本授权的 // SPDX-License-Identifier: GPL-3.0//告诉编译器源代码所适用的Solidity版本为>0.4.16 及 <0.9.0 pragma solidity >0.4.16 <0.9.0;contract SimpleStorage {//声明了一个名为storedData的状态变量&#xff0…

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

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