爬取图片保存为pdf

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

1 导入包

python 复制代码
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

python 复制代码
### 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对应的照片

python 复制代码
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并且合并

python 复制代码
### 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文件,这里假设每张图片保存为一个单独的PDF
        pdf_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.")

结果如下图:

相关推荐
AndrewHZ21 分钟前
【图像处理基石】GIS图像处理入门:4个核心算法与Python实现(附完整代码)
图像处理·python·算法·计算机视觉·gis·cv·地理信息系统
winfredzhang18 小时前
Python小说图片PDF生成器开发详解
python·pdf·图文并茂·电子小说
Geek 研究僧18 小时前
iPhone 17 Pro Max 的影像升级全解:从长焦、前置聊到 ProRes RAW
图像处理·ios·iphone·影像
菜鸟‍1 天前
【论文学习】2025年图像处理顶会论文
图像处理·人工智能·学习
^O^ ^O^1 天前
pc端pdf预览
前端·javascript·pdf
2501_929157682 天前
FC和SFC的原版说明书(扫描的PDF)
pdf
七芒星20232 天前
多目标识别YOLO :YOLOV3 原理
图像处理·人工智能·yolo·计算机视觉·目标跟踪·分类·聚类
zhangfeng11333 天前
R 导出 PDF 时中文不显示 不依赖 showtext** 的最简方案(用 extrafont 把系统 TTF 真正灌进 PDF 内核)
开发语言·r语言·pdf·生物信息
pc大老3 天前
PDF文件翻译新方法:轻松多语言转换!
pdf·pdf文件·#pdf设置·pdf转换多国语言
SEO-狼术4 天前
Use Sticky Notes for Easier PDF Collaboration
pdf