【酱浦菌-爬虫项目】爬取百度文库文档

server/2024/9/25 23:18:24/

1. 首先,定义了一个变量`url`,指向百度文库的搜索接口 ‘https://wenku.baidu.com/gsearch/rec/pcviewdocrec’。
2. 然后,设置了请求参数`data`,包括文档ID(`docId`)和查询关键词(`query`)。
3. 定义了HTTP请求的头部信息,模拟了一个Chrome浏览器的请求。
4. 使用`requests.get()`方法,发送一个GET请求到指定的URL,并将响应内容保存在`response`变量中。
5. 从响应的JSON数据中提取了相关文档的信息,包括图片的URL。
6. 遍历每个相关文档:
   - 获取图片的URL。
   - 使用`requests.get()`方法获取图片的内容。
   - 将图片内容写入到以数字命名的文件中(保存在`img`文件夹下)。
   - 打印相关文档的其他信息。
7. 最后,完成了对相关文档图片的下载操作。

完整代码如下:

python">import requests
from pprint import pprint
# 确定请求链接
url = 'https://wenku.baidu.com/gsearch/rec/pcviewdocrec'
# 请求参数
data ={
'docId':'d6b88ed8d0f34693daef5ef7ba0d4a7302766c99',
'query':'趣味答题 题目及答案',
'recPositions':''
}
headers = {'user-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36'
}
response = requests.get(url = url, params = data, headers = headers)
num = 1
#pprint(response.json()['data']['relateDoc'])
for index in response.json()['data']['relateDoc']:pic = index['pic']img_content = requests.get(url =pic, headers= headers).contentwith open('img\\' + str(num) + '.jpg', mode='wb') as f:f.write(img_content)print(index)num += 1

 运行效果如下:


http://www.ppmy.cn/server/24443.html

相关文章

CentOS 常见的命令

CentOS 常见的命令 引言 CentOS(Community Enterprise Operating System)是基于Red Hat Enterprise Linux (RHEL)构建的开源企业级Linux发行版。它广泛应用于服务器环境中,因其稳定性、可靠性和强大的社区支持而受到许多系统管理员的青睐。掌…

深入浅出MySQL-07-【开发常用数据库对象】

文章目录 前言1.视图1.1.什么是视图1.2.视图操作1.3.创建或者修改视图1.4.删除视图1.5.查看视图 2.存储过程和函数2.1.什么是存储过程和函数2.2.存储过程和函数的相关操作2.3.创建、修改存储过程或者函数2.4.删除存储过程或函数2.5.查看存储过程或者函数2.5.1.查看存储过程或函…

神经网络高效训练:优化GPU受限环境下的大规模CSV数据处理指南

最近训练模型,需要加载wifi sci data 数据量特别大,直接干爆内存,训练也特别慢,快放弃了!随后冷静下来,然后靠着多年的经验,来进行层层优化,随诞生了这篇博客。 背景介绍 机器学习模型的训练通常需要大量的数据,尤其是对于深度神经网络模型。然而,当数据集非常庞大时…

RSA实现中弱密钥漏洞分析

RSA实现中弱密钥漏洞分析 “Analyzing Weak Key Vulnerabilities in RSA Implementation” 完整下载链接:RSA实现中弱密钥漏洞分析 文章目录 RSA实现中弱密钥漏洞分析摘要第一章 引言1.1 研究背景1.2 研究目的1.3 研究意义 第二章 RSA算法基础2.1 RSA算法原理2.2 RSA密钥生成…

深入剖析Tomcat(五) 剖析Servlet容器并实现一个简易Context与Wrapper容器

上一章介绍了Tomcat的默认连接器,后续程序都会使用默认连接器。前面有讲过Catalina容器的两大块内容就是连接器与Servlet容器。不同于第二章的自定义丐版Servlet容器,这一章就来探讨下Catalina中的真正的Servlet容器究竟长啥样。 四种容器 在Catalina中…

C++之类和对象

目录 一:再谈构造函数 1.1 构造函数体赋值 1.2 初始化列表 1.3 explicit关键字 二. static成员 2.2 特性 三. 友元 3.1 友元函数 3.2 友元类 四: 内部类 五:匿名对象 六. 再次理解类和对象 一:再谈构造函数 1.1 构造…

分布式与一致性协议之Raft算法(二)

Raft算法 什么是任期 我们知道,议会选举中的领导者是有任期的,当领导者任命到期后,需要重新再次选举。Raft算法中的领导者也是有任期,每个任期由单调递增的数字(任期编号)标识。比如,节点A的任期编号是1。任期编号会…

Verilog学习之时序控制、语句块(1)

推荐Verilog学习网址: HDLbits EDAPlayground 菜鸟教程 因为自己以前学过Verilog,现在要重新捡起来,所以就记录了一下不熟悉的部分。 时序控制 代码来自菜鸟教程4.3 Verilog 时序控制 | 菜鸟教程 1.时延控制 常规时延 #10 value1 v…