python采集付费论文批量下载 并保存到文档,毕设论文再也不愁......

news/2024/11/18 8:37:59/

嗨害大家好鸭! 我是小熊猫鸭~

大家是不是在写毕业论文的时候

需要参考某一段的内容

要用到复制粘贴,但是吧,某文库就需要付费,

就老难受了…

我们今天就来解决这个"老难受"

在这里插入图片描述

环境使用:

python 3.8
pycharm

模块使用

requests >>> 数据请求模块 pip install requestsdocx >>> 文档保存 pip install python-docxre 内置模块 不需要安装

一个小细节

文字识别:
1. 注册一个百度云API账号
2. 创建应用 并且去免费领取资源
3. 在技术文档里面 Access Token获取
4. 调用API接口做文字识别

本次地址

在这里插入图片描述
这里我没打前缀,不过审…自己打吧

在这里插入图片描述

模块安装问题:

  • 如果安装python第三方模块:
  1. win + R 输入 cmd 点击确定,
  2. 输入安装命令 pip install 模块名 (pip install requests) 回车
  3. 在pycharm中点击Terminal(终端) 输入安装命令
  • 安装失败原因:

  • 失败一: pip 不是内部命令
    解决方法: 设置环境变量

  • 失败二: 出现大量报红 (read time out)
    解决方法: 因为是网络链接超时, 需要切换

镜像源整理:

清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:https://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:https://pypi.hustunique.com/
山东理工大学:https://pypi.sdutlinux.org/
豆瓣:https://pypi.douban.com/simple/
例如:pip3 install -i https://pypi.doubanio.com/simple/ 模块名

  • 失败三: cmd里面显示已经安装过了, 或者安装成功了, 但是在pycharm里面还是无法导入
    解决方法: 可能安装了多个python版本 (anaconda 或者 python 安装一个即可) 卸载一个就好 或者你pycharm里面python解释器没有设置好

一. 分析数据来源

找文档数据内容, 是在哪个url里面生成的

  • 通过开发者工具进行抓包分析
    1. 打开开发者工具: F12 / 鼠标右键点击检查选择network
    2. 刷新网页: 让本网页数据内容重新加载一遍
    如果你是非VIP账号, 看数据, 图片形式 —> 把数据<图片> 获取下来 —> 做文字识别
    3. 分析文库数据内容, 图片所在地址

源码、资料点击此处


二. 代码实现步骤

1. 发送请求, 模拟浏览器对于url地址发送请求

在这里插入图片描述

请求参数

data = {#python学习交流:660193417###'docId': docId,'query': name,'recPositions': ''}

请求头

 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/'}

发送请求

response = requests.get(url=url, params=data, headers=headers)# <Response [200]> 响应对象, 200 表示请求成功print(response)

2. 获取数据, 获取服务器返回响应数据

response.json() 获取响应json字典数据, 但是返回数据必须是完整json数据格式 花括号 {}
response.text 获取响应文本数据, 返回字符串  任何时候都可以, 但是基本获取网页源代码的时候
response.content 获取响应二进制数据, 返回字节 保存图片/音频/视频/特定格式文件

在这里插入图片描述

3. 解析数据, 提取图片链接地址

定义文件名 整型

num = 1
# for循环遍历, 把列表里面元素一个一个提取出来
for index in response.json()['data']['relateDoc']:# index 字典呀pic = index['pic']print(pic)

4. 保存数据, 把图片内容保存到本地文件夹

发送请求 + 获取数据 二进制数据内容# img_content = requests.get(url=pic, headers=headers).content# # 'img\\'<文件夹名字> + str(num)<文件名> + '.jpg'<文件后缀>  mode='wb' 保存方式, 二进制保存# # str(num) 强制转换成 字符串# # '图片\\' 相对路径, 相对于你代码的路径 你代码在那个地方, 那个代码所在地方图片文件夹# with open('图片\\' + str(num) + '.jpg', mode='wb') as f:#     # 写入数据 保存数据  把图片二进制数据保存#     f.write(img_content)# # 每次循环 + 1# print(num)# num += 1

5. 做文字识别, 识别文字内容

在这里插入图片描述

进行文字识别

在这里插入图片描述
在这里插入图片描述

遍历一下

在这里插入图片描述

6.保存文档

# # 读取文件夹里面所有图片内容
# content_list = []
# files = os.listdir('img\\')
# for file in files:
#     filename = 'img\\' + file
#     words = get_content(file=filename)
#     print(words)
#     content_list.append(words)
#
# # 保存word文档里面
# doc = Document()
# # 添加第一段文档内容
# content = '\n'.join(content_list)
# doc.save('data.docx')

今天的文章就是这样啦~

我是小熊猫,咱下篇文章再见啦(✿◡‿◡)

在这里插入图片描述


http://www.ppmy.cn/news/4168.html

相关文章

JVM Java内存模型(JMM)

很多人将Java内存结构与Java内存模型傻傻分不清&#xff0c;Java内存模型是Java memory model&#xff08;JMM&#xff09;的意思。简单地说&#xff0c;JMM定义了一套在多线程的环境下读写共享数据&#xff08;比如成员变量、数组&#xff09;时&#xff0c;对数据的可见性、有…

傻白入门芯片设计,盘点GPU业界的大佬(十五)

在PC个人电脑时代&#xff0c;英特尔&#xff08;Inter&#xff09;是无可争议的芯片巨头&#xff0c;凭借着X86架构在数据中心CPU中的压倒性地位&#xff0c;一度垄断全球90%的市场份额。然而在人工智能时代&#xff0c;以英伟达&#xff08;NVIDIA&#xff09;为首的GPU、AI芯…

早餐店+饮品+烘焙,如何做多群体早中晚生意?

早餐吃好、午餐吃饱、晚餐少吃&#xff0c;如今早餐店已经不再局限于豆浆油条、鸡蛋面包&#xff0c;同时还有饮品&#xff0c;芳芳珍早鲜奶店是一家早餐店&#xff0c;30个SKU销量很高&#xff0c;一天中有近75%的销售都集中在早餐场景。 这家早餐店是如何做的&#xff1f; 01…

5G基站射频传导测试研究与应用

【摘 要】基站是5G网络中的重要节点,其RF(射频)性能与其网络覆盖范围和服务质量高度相关。详细介绍了5G基站的射频测试标准,并通过对测试项目物理意义和实际影响的分析,给出了射频传导测试方法以及测试环境构建中的注意事项,通过对实际基站的测试及对其结果的分析,指出…

Servlet转发与重定向

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;JAVA开发者…

c拾遗-二级指针、数组内函数

1、c语言中二级指针 用途1&#xff1a;一般被用在多维数组的环境中&#xff0c;一个二级指针可以指向一个二维数组&#xff1b; 用途2&#xff1a;二级指针作为函数参数使用时&#xff0c;可以通过函数修改实参指针值的目的。 对于第二点用途的理解&#xff1a; c语言的函数调…

Socket Websocket 客户端和服务端实现

最近在写一个上位机&#xff0c;用到了Websocket&#xff0c;这里就整理一下&#xff0c;顺便把Socket的东西也整理的了&#xff0c;方便以后查阅。 Socket Websocket 客户端和服务端实现Socket客户端和服务端实现Socket客户端Socket服务端实现效果Websocket 客户端和服务端实现…

一维数组定义遍历

一维数组&#xff0c;是由数字组成的以单纯的排序结构排列的结构单一的数组&#xff0c;是计算机程序中最基本的数组。二维及多维数组可以看作是一维数组的多次叠加产生的。 在程序中可以使用下标变量&#xff0c;即说明这些变量的整体为数组&#xff0c;数组中的每个变量的数…