爬取图片保存为pdf

   本文章想借着爬虫给大家介绍一下图片转pdf,有需要的友友们可以看看参考参考,有帮助到友友的可以收藏+关注。下面以爬取初中7年级数学上册为例给大家演示一下。网址是这个    https://mp.weixin.qq.com/s?__biz=MzAxOTE4NjI1Mw==&mid=2650214000&idx=6&sn=2e627183fc9376a2f09f29fb84d912b8&chksm=83c97952b4bef04499f9797b0b01daa54b46d00ef9958c1e521da0a29f41559c99aefe96f157&scene=27

1 导入包

import requests
from lxml import html,etree
from bs4 import BeautifulSoup
import re
import pandas as pd
from PIL import Image
from io import BytesIO
import os
from PyPDF2 import PdfFileMerger, PdfFileReader
import PyPDF2

2 爬取目标url获取有用照片url

### 1 解析网页获取可用数据
URL = 'https://mp.weixin.qq.com/s?__biz=MzAxOTE4NjI1Mw==&mid=2650214000&idx=6&sn=2e627183fc9376a2f09f29fb84d912b8&chksm=83c97952b4bef04499f9797b0b01daa54b46d00ef9958c1e521da0a29f41559c99aefe96f157&scene=27'
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}
respons = requests.get(url =URL,headers= headers)
respons.encoding='utf-8'
respons = respons.text
soup = BeautifulSoup(respons,'lxml')
# 使用正则表达式查找所有https开头的URL
urls = re.findall(r'https://\S+', str(soup))
book_url = []
# 打印找到的URL
for url in urls:if len(url)> 139:# print(url)book_url.append(url)else:None

3 爬取url对应的照片

for index,url_ in enumerate(book_url):image_filename = r'E:/学习/7年级上册数学/{}.jpeg'.format(index)response = requests.get(url_)if response.status_code == 200:with open(image_filename, 'wb') as file:file.write(response.content)print(f'图片已保存到 {image_filename}')else:print(f'下载失败,状态码: {response.status_code}')

爬到照片:
在这里插入图片描述

4 图片转化为pdf并且合并

### 3将图片转化为pdf
folder_path = r'E:/学习/7年级上册数学'
# 创建一个列表来存储每张图片转换成的PDF文件的路径
pdf_files = []
# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):file_path = os.path.join(folder_path, filename)img = Image.open(file_path)# 转换图片为PDF文件,这里假设每张图片保存为一个单独的PDFpdf_file_path = f'{folder_path}/temp_{filename.rsplit(".", 1)[0]}.pdf'img.save(pdf_file_path, "PDF")pdf_files.append(pdf_file_path)
if pdf_files:merger = PyPDF2.PdfWriter()for pdf in pdf_files:merger.append(pdf)output_pdf_filename = os.path.join(folder_path, '7年级上册数学.pdf')with open(output_pdf_filename, 'wb') as fout:merger.write(fout)print(f"PDFs merged into {output_pdf_filename}")
else:print("No images were found in the specified folder.")

结果如下图:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

智慧医院是什么?建设智慧医院的关键步骤

智慧医院是什么? 智慧医院是一种新型的医疗机构,它利用先进的信息技术、数据分析和智能化系统,优化医院的管理和服务流程,提高医疗质量和效率。在智慧医院中,所有的运营和管理环节都可以通过数据驱动的方式来实现优化…

Trollspeed网速悬浮窗,精简且强大

我很喜欢iOS的界面UI,它的设计哲学是以人为本,简约而不简单。不过有时候,我也会觉得iOS简约过头了。人类是很没安全感的动物,获取的信息量足够多,我们才会感觉到安全。 在iOS16中,苹果加入了电量百分比显示…

一种快速edit的方法

后端的CURD,通过chatgpt很容易。 前端的CURD,编辑操作稍微有点复杂。 我一开始的想法是编辑的时候使用一个模态框,但是发现不舒服,为了快速实现,我决定点击编辑的时候,直接打开新的页面,这样开…

[数据集][目标检测]街头摊贩识别检测数据集VOC+YOLO格式758张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):758 标注数量(xml文件个数):758 标注数量(txt文件个数):758 标注类别…

航电系统,无人机的核心!!!

一、核心组成部分 飞控系统 定义:无人机飞行控制系统,负责接收来自传感器的数据,并根据飞行任务指令,通过算法计算出无人机的姿态和位置信息,进而控制无人机的飞行状态。 组成:通常由主控制器、姿态传感…

深度学习助力病理切片虚拟组织染色|文献精析·24-09-03

小罗碎碎念 这篇文章综述了深度学习技术在生物样本虚拟组织染色领域的最新研究进展,探讨了其在提高病理诊断效率和降低成本方面的潜力。 作者角色作者姓名单位名称(英文)单位名称(中文)第一作者Bijie BaiElectrical an…

Flutter App名称跟随手机语言改变而改变

Android 1.修改android/app/src/main/AndroidManifest.xml中的android:lable的值为string/app_name 2.在android/app/src/main/res/values/styles.xml文件中添加App的名称,如果没有这个文件请自行添加。 这里说明一下,如果没有手机语言对应的App名称&a…

Linux之nginx部署项目【前后端分离】(外加redis安装)

nginx安装和访问 1.使用apt安装Nginx apt install -y nginx 用whereis nginx找到和nginx相关目录 nginx目录结构 /usr/sbin/nginx 服务文件 /etc/nginx 配置目录 /usr/share/nginx/html 发部项目 服务名: nginx.service ps -ef | grep nginx apt install -y net-tools …

kafka及异步通知文章上下架

1)自媒体文章上下架 需求分析 2)kafka概述 消息中间件对比 特 性 ActiveMQ RabbitMQ RocketMQ Kafka 开 发 语 言 java erlang java scala 单 机 吞 吐 量 万级 万级 10万级 100万级 时 效 性 ms us ms ms级以内 可 用 性 高(主从&#xff0…

c++(list)

目录 迭代器 sort(随机迭代器)​编辑 list(双向迭代器) vector(随记迭代器) find(input迭代器--只读--可传任意类型迭代器) ​编辑 尾插 push_back/emplace_back 插入数据 删除 交换(swap) 排序 链表合并(merge) 删除(remove) 剪切(splice) 去重(un…

Opencv中的直方图(3)直方图比较函数compareHist()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 比较两个直方图。 函数 cv::compareHist 使用指定的方法比较两个密集或两个稀疏直方图。 该函数返回 d ( H 1 , H 2 ) d(H_1, H_2) d(H1​,H2​…

巧用xrename批量重命名下载的影视文件

网上下载了个电视剧,可是文件名比较长,而且是集数用中文表示的,排序都是乱的。期望的是: 1.文件名改短 2.中文的数字改成阿拉伯数字 看下原始文件名: 期望将文件名改短,例如: 修改前&#xff…

Golang环境安装、配置详细

Windows下安装Go开发环境 点我下载 Windows配置Go环境变量 出现工具install失败时,切换其它代理 # 1. 七牛 CDN go env -w GOPROXYhttps://goproxy.cn,direct# 2. 阿里云 go env -w GOPROXYhttps://mirrors.aliyun.com/goproxy/,direct# 3. 官方 go env -w GOP…

硬件工程师笔试面试知识器件篇——电阻

目录 1、电阻 1.1 基础 电阻原理图 阻实物图 1.1.1、定义 1.1.2、工作原理 1.1.3、类型 1.1.4、材料 1.1.5、标记 1.1.6、应用 1.1.7、特性 1.1.8、测量 1.1.9、计算 1.1.10、颜色编码 1.1.11、公差 1.1.12、功率 1.1.13、重要性 1.2、相关问题 1.2.1、电阻…

电路分析 ---- 同相比例放大器和电压跟随器

1 同相比例运算放大器 同相比例运算放大电路引入了电压串联负反馈,故可以认为输入电阻无穷大,输出电阻为0 分析过程 虚短, u N u P u I u_{N}u_{P}u_{I} uN​uP​uI​ i F i R → u o − u N R f u N − 0 R → u o − u I R f u I R i…

【前端面试】leetcode指针解法javascript

最大盛水 https://leetcode.cn/problems/container-with-most-water/ var maxArea = function(height) {// 左右指针靠拢let left = 0;let right = height.length-1;let maxArea = 0; while(left<right){// 计算出 当前的容积 与最大容积比较,取出最大的const currentAre…

算法数学加油站:一元高斯分布(正态分布)Python精美科研绘图(PDF、CDF、PPF、ECDF曲线;QQ图)

这类博客针对算法学习时可能遇到的数学知识补充&#xff0c;但不会太多废话&#xff0c;主要是公式结合Python代码精美绘图理解&#xff01; 本期重点&#xff1a; 参数&#xff1a;期望、标准差曲线&#xff1a;概率密度曲线PDF、累积概率密度函数CDF、百分点函数PPF应用&am…

【Webpack】基本使用方法

参考视频&#xff1a; 30 分钟掌握 Webpack_哔哩哔哩_bilibili 什么是webpack 简单来说就是一个 打包工具&#xff0c; 可以将互相依赖的html、css、js以及图片字体等资源文件&#xff0c;经过处理打包成一个可执行的项目文件 &#x1f330;看例子 环境初始化 在需要使用…

C语言 09 流程控制

if 如果需要判断某个条件&#xff0c;当满足此条件时&#xff0c;才执行某些代码&#xff0c;那这个时候该怎么办呢&#xff1f;可以使用if语句来实现&#xff1a; #include <stdio.h>int main() {int i 0;// 只希望i大于10的时候才执行下面的打印语句if (i > 10) …

YUM配置文件开启缓存

可设置一台服务器或者云主机作为外网YUM源&#xff0c;并且开启yum在线下载缓存&#xff0c;之后可将服务器所有安装包缓存同步到内网本地。 # vim /etc/yum.conf 将 “keepcache0” 改为 “keepcache1” 缓存目录为 /var/cache/yum/xxx/xxx/xxx 日后可下载到本地然后上传到…