广告
返回顶部
首页 > 资讯 > 后端开发 > Python >基于Python实现网页文章转PDF文档
  • 859
分享到

基于Python实现网页文章转PDF文档

2024-04-02 19:04:59 859人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

我们有时候看到一篇好的文章,想去保存下来,传统方式一般是收藏书签、复制粘贴到文档或者直接复制链接保存,但这样一次两次还好,数量多了,比较麻烦不说,还可能不好找~ 这个时候,pyth

我们有时候看到一篇好的文章,想去保存下来,传统方式一般是收藏书签、复制粘贴到文档或者直接复制链接保存,但这样一次两次还好,数量多了,比较麻烦不说,还可能不好找~

这个时候,python的作用就来了,直接抓下来导出为pdf,直接把整个网站的内容都导下来都行~

话不多说,我们直接上代码!

import requests
import parsel
import pdfkit
import os
import re


html_str = """
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
{article}
</body>
</html>
"""


def change_title(title):
    """
    替换标题中的特殊字符
    :param title: 传入文章标题
    :return: 返回一个替换掉特殊字符的标题
    """
    """
    使用re.compile()将正则表达式字符串形式编译为一个对象,通过该对象提供的一些列方法对文本
    进行匹配查找
    re.sub() 第一个参数对应的正则表达式,第二个参数为要替换成的字符串, 第三个参数为源字符串
    """
    pattern = re.compile(r"[\/\\\:\*\?\"\<\>\|]")  # '/ \ : * ? " < > |'
    new_title = re.sub(pattern, "_", title)  # 替换为下划线
    return new_title


for page in range(1, 11):
    """
    发送请求的url地址,唯一资源定位符
    headers: 请求头 把Python伪装成浏览器对服务器发送请求, 然后服务器会给我们返回一个响应数据
        请求头所加的参数都是可以在开发工具中的headers里面的request headers中找到的
        比如 user-agent:代表着浏览器的信息
            cookies:用户的信息 常用于检测是否有登陆账号
            host:域名
            referer:常说的防盗链,告诉服务器是从哪个网页跳转过来的
    请求方式:可以通过开发者工具中headers里面的数据看到是什么样的请求方式
        get请求: 是可以直接从服务器上面获取数据
        post请求:需要向服务器发送一个数据 比如说(搜索/登陆)
    response:响应对象
    状态码: 200表示请求成功 300:重定向 跳转 400:通常是url网址不对 500 一般是服务器问题
    获取网页文本数据 response.text 获取网页JSON字典数据 response.json() 获取网页二进制数据 response.content
    """
    url = 'https:/qdPython/article/list/{page}'
    headers = {
        'user-agent': 'Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWEBKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'
    }
    response = requests.get(url=url, headers=headers)
    """
    url里面的****替换为blog.csdn.net即可
    把 html 字符串数据转换成一个 Selector 对象
    Selector 就具有一系列数据解析的方法  CSS/xpath/re
    类选择器 都是使用圆点.开头
    ID选择器 是使用#开头
    属性选择器:
        ::text获取标签里面的文本数据
        ::attr(xxx) 获取标签内某一个属性的数据
        get() 从 Selector 对象中提取第一个数据, 直接返回字符串数据给我们
        getall() 从 Selector 对象中提取提取所有数据, 返回一个列表
    """
    selector = parsel.Selector(response.text)
    href = selector.css('.article-list div.article-item-box a::attr(href)').getall()
    for link in href:
        response_1 = requests.get(url=link, headers=headers)
        selector_1 = parsel.Selector(response_1.text)
        title = selector_1.css('#articleContentId::text').get()
        content = selector_1.css('#content_views').get()
        new_title = change_title(title)
        # 创建文件保存地址以及保存文件的名字 和格式
        pdf_path = 'pdf\\' + new_title + '.pdf'
        html_path = 'pdf\\' + new_title + '.html'
        # str.fORMat() 字符串格式化方法
        html = html_str.format(article=content)
        """
        with open   打开文件时, 当文件对象引用完毕之后会自动关闭文件
        html_path:文件保存路径以及名字格式 
        mode:保存方式 w 写入 如果你不写mode默认是r 读
        encoding: 编码
        as f 重命名 可以自定义
        f = open()
        f.writer()
        f.close()
        """
        with open(html_path, mode='w', encoding='utf-8') as f:
            f.write(html)
            print('正在保存:', title)
        # exe 文件存放的路径
        config = pdfkit.configuration(wkhtmltopdf='C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe')
        # 把 html 通过 pdfkit 变成 pdf 文件
        pdfkit.from_file(html_path, pdf_path, configuration=config)
        os.remove(html_path)

兄弟们快去试试吧!

到此这篇关于基于Python实现网页文章转PDF文档的文章就介绍到这了,更多相关Python网页文章转PDF内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 基于Python实现网页文章转PDF文档

本文链接: https://www.lsjlt.com/news/118351.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于Python实现网页文章转PDF文档
    我们有时候看到一篇好的文章,想去保存下来,传统方式一般是收藏书签、复制粘贴到文档或者直接复制链接保存,但这样一次两次还好,数量多了,比较麻烦不说,还可能不好找~ 这个时候,Pyth...
    99+
    2022-11-11
  • 基于pdf2docx模块怎么用Python实现批量将PDF转Word文档
    这篇“基于pdf2docx模块怎么用Python实现批量将PDF转Word文档”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
    99+
    2023-07-06
  • Python3实现网页内容转换成PDF文档和图片
    目录1、引言2、代码实战2.1 模块介绍2.2 安装2.3 代码实例2.4 拓展3、总结1、引言 小鱼:小屌丝,你这是干啥呢? 小屌丝:我的女神想要这个网页的内容。 小鱼:那你也不能...
    99+
    2022-11-13
  • Python一键实现PDF文档批量转Word
    目录实现效果环境准备代码实现无论是在工作还是学习当中,大家都会遇到这样一个问题,将“PDF当中的内容(文本和图片)转换为Word的格式”,也就是说从只读转换成...
    99+
    2022-11-11
  • 基于Python实现简易文档格式转换器
    目录需求分析开发环境引用模块UI界面代码块格式转换主要代码块效果展示最近看到市场上各种的文档格式转换软件,要么是收费、要么是有大量的广告。于是学习了一下 PyQt5 的页面操作,再加...
    99+
    2022-11-12
  • SpringBoot如何实现word文档转pdf
    目录一.背景二.方案选择1.Spire.Doc for Java方案2.docx4j方案3.jodconverter+LibreOffice 方案4.其他三.实操1.docx4j2....
    99+
    2022-11-13
  • 基于pdf2docx模块Python实现批量将PDF转Word文档的完整代码教程
    PDF文件是一种常见的文档格式,但是在编辑和修改时不太方便,因为PDF本质上是一种静态的文档格式。 因此,有时候我们需要将PDF文件转换成Word格式,以便更好地编辑和修改文档。在本...
    99+
    2023-05-15
    pdf2docx模块 Python PDF Python PDF转Word
  • 基于Python实现文本文件转Excel
    目录一、前言二、openpyxl模块1、安装2、简单操作三、文本文件转excel文件1、寻找规律2、开始转换补充一、前言 Excel文件是我们常用的一种文件,在工作中使用非常频繁。E...
    99+
    2022-11-11
  • Java实现添加页码到PDF文档
    目录代码编译环境将添加页码到PDF文档完整代码效果图页码可以清楚了解总页数、定位页数快速寻找自己所要的文段、打印时不会分不清头中尾。很多人在使用办公软件的时候就会选择PDF进行文档的...
    99+
    2023-05-14
    Java添加页码到PDF Java PDF添加页码 Java添加页码
  • 基于Python实现对PDF文件的OCR识别
    最近在做一个项目的时候,需要将PDF文件作为输入,从中输出文本,然后将文本存入数据库中。为此,我找寻了很久的解决方案,最终才确定使用tesseract。所以不要浪费时间了,我们开始吧。 1.安装tesser...
    99+
    2022-06-04
    文件 Python PDF
  • Javabean基于xstream包实现转XML文档的方法
    本文实例讲述了Javabean基于xstream包实现转XML文档的方法。分享给大家供大家参考,具体如下:1. 所需Jar包:xpp3_min.jarxstream.jar本站下载地址。把这两个jar所添加到项目中2. 添加两个用于测试的j...
    99+
    2023-05-31
    javabean xstream xml
  • 用Python实现给Word文档盖章
    目录模块分解设置加粗功能块练习知识归纳与总结总结目标文件夹内有多份 Word 文件 ——【xxx涨薪通告.docx】,我们需要在这些文档的末尾处添加公司的电子...
    99+
    2022-11-13
  • Python实现网页文件转PDF文件和PNG图片的示例代码
    目录一、html网页文件转pdf二、html网页文件转png一、html网页文件转pdf #将HTML文件导出为PDF def html_to_pdf(html_path,pdf_p...
    99+
    2022-11-12
  • 基于Python实现PDF区域文本提取工具
    目录功能简介开发代码功能简介 打开软件后界面如下: 点击打开文件按钮打开之前的PDF文件后效果如下: 框选区域后,标题栏会自动显示当前框选的区域提取到的文字,还可以左右按钮切换:...
    99+
    2022-11-12
  • JAVA实现PDF转HTML文档的示例代码
    本文是基于PDF文档转PNG图片,然后进行图片拼接,拼接后的图片转为base64字符串,然后拼接html文档写入html文件实现PDF文档转HTML文档。 引入Maven依赖 &...
    99+
    2022-11-12
  • Go语言中如何实现PDF转word文档
    Go语言PDF转word文档步骤如下:1、设置许可证信息;2、打开PDF文件;3、创建一个新的Word文档;4、遍历PDF的每一页,将每一页转换为图像,并将图像插入到Word文档中;5、保存Word文档。本教程操作系统:windows10系...
    99+
    2023-12-13
    PDF转word go语言 Golang
  • springboot基于docsify 实现随身文档
    需求分析 文档可以和项目一起进行版本管理文档可以在线访问文档可以与springboot项目集成,不需要分开部署MarkDown支持文档跟随,打包jar也可以访问 技术选型 对于网上已...
    99+
    2022-11-13
  • Java如何实现添加页码到PDF文档
    这篇文章主要介绍“Java如何实现添加页码到PDF文档”,在日常操作中,相信很多人在Java如何实现添加页码到PDF文档问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java如何实现添加页码到PDF文档”的疑...
    99+
    2023-07-05
  • Python操作PDF文件之实现A3页面转A4
    目录1. 需求概述2. 代码实现1. 需求概述 最近接到一份PDF资料需要打印,奈何页面是如图所示的A3格式的,奈何目前条件只支持打印A4。 我想要把每页的一个大页面裁成两个小的页面...
    99+
    2022-11-11
  • 基于Python实现自动化文档整理工具
    目录引子应用场景源代码源代码说明效果如下所示引子 例如,一个人可能会在计算机上存储大量的照片、视频和文档文件,这些文件可能散落在不同的文件夹中,难以管理和查找。该程序可以根据文件类型...
    99+
    2023-05-18
    Python实现自动化文档整理 Python自动化文档整理 Python文档整理
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作