python批量保存网页为pdf_利用Python把网页内容转换为pdf格式文件,批量下载到本地!...
使用Google浏览器的打印命令时,保存下来的pdf文件中包含网页中的所有内容(左右边框和广告等),想仅把当前网页中的主体内容转成pdf格式的文件保存下来。
操作说明:
填写URL及提取条件(浏览器中按F12,查找),预览,打印。
python代码说明:
默认可不输入提取条件,对于没有下载过的网站,会出现提示;对于已下载过的网站,有保存记录,自动关联当前网站的提取条件。
python代码如下:
import win32api
import win32con
import requests
from bs4 import BeautifulSoup
import webbrowser
import tkinter
from tkinter import filedialog
import pdfkit
# 预览
def take_body():
global url
global body_class
global headers
url = var_url.get()
body_class = var_body.get()
# 请求URL
headers = {
"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Accept-Encoding":"gzip, deflate, br",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"
}
r = requests.get(url,headers = headers)
soup = BeautifulSoup(r.content,"html.parser")
# 提取标题
global title
title = soup.title.text
# 判断该网站是否已下载转换过
f = open("temp.txt","r")
a = f.read()
dict = eval(a)
f.close()
if url.split("/")[2] in dict:
body_class = dict[url.split("/")[2]]
elif body_class == "":
win32api.MessageBox(0, "未从在该网站下载过文档,添加提取条件", "提示", win32con.MB_OK)
# 提取正文
if body_class != "":
body = soup.find_all(class_= body_class)[0]
# 对提取的内容,调用浏览器进行预览
html_test = str(body)
with open("html_test.html","wb")as f:
f.write(html_test.encode("utf-8"))
webbrowser.open("E:PythonHtmlToPdfHtmlToPdf_V0.7html_test.html",new=0,autoraise=True)
# html转pdf
def htmltopdf():
file_name = title + ".pdf"
types = [("pdf文件", "*.pdf")]
dest_dir = filedialog.asksaveasfilename(initialfile = file_name,filetypes = types)
options = {"encoding": "utf-8"}
pdfkit.from_file("html_test.html", dest_dir, options=options)
dict = {}
f = open("temp.txt","r")
a = f.read()
dict = eval(a)
f.close()
dict[url.split("/")[2]] = body_class
f = open("temp.txt","w")
f.write(str(dict))
f.close()
# 创建窗口
root = tkinter.Tk()
root.title("HtmlToPdf")
root.geometry("300x200")
var_url = tkinter.StringVar()
var_body = tkinter.StringVar()
label_1 = tkinter.Label(root,text = "URL:").place(x=10,y=10)
text_1 = tkinter.Entry(root,textvariable = var_url).place(x=100,y=10)
label_2 = tkinter.Label(root,text = "输入提取条件:").place(x=10,y=55)
text_2 = tkinter.Entry(root,show = None,textvariable = var_body).place(x=100,y=55)
button_2 = tkinter.Button(root,text = "预览",command = take_body).place(x=250,y=50)
label_3 = tkinter.Label(root,text = "是否打印:").place(x=10,y=100)
button_3 = tkinter.Button(root,text = "是",command = htmltopdf).place(x=100,y=95)
button_3 = tkinter.Button(root,text = "否",command = root.quit).place(x=130,y=95)
root.mainloop()
本文仅代表作者个人观点,不代表SEO研究协会网官方发声,对观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员。更多相关资讯,请到SEO研究协会网www.seoxiehui.cn学习互联网营销技术请到巨推学院www.jutuiedu.com。
python批量保存网页为pdf_利用Python把网页内容转换为pdf格式文件,批量下载到本地!...相关推荐
- python rtf转txt_将DOC、RTF格式文件批量转为TXT格式文件
Windows 下将目录下所有文件下的文件 拷贝到一个目录中:搜索"." 安装python 及 win32com模块 pip install pypiwin32 创建LDA_RTF ...
- 【ASE+python】实现将poscar格式文件批量转换为xsd格式文件
将poscar格式文件批量转换为xsd格式文件 ASE介绍 ASE安装 ASE的ase.io.read()与ase.io.write() ase.io.read() ase.io.write() 单份 ...
- 教你用8行代码将word转换为pdf格式 及 6行代码实现批量将word转换为pdf格式--python实用小技能get起来
目录 将word转换为pdf格式 安装pywin32 上代码 运行结果 批量实现word转pdf 安装docx2pdf 上代码 运行结果 将word转换为pdf格式 安装pywin32 代码(Anac ...
- Python模块介绍使用:img2pdf 几行代码将图片转为PDF格式文件
hello,大家好,今天我来推荐一个模块--img2pdf,这个模块可以把图片转换为pdf,开始学习吧! 1. pip安装 使用命令: pip install img2pdf 安装完毕后,打开一个Py ...
- PDF大文件批量去除水印,又一个省心小妙招
PDF大文件批量去除水印,又一个省心小妙招 导入 在阅读过程中如果遇到一些带有水印的资料是比较烦心的,如下图所示,水印以及类似的内容会影响我们的阅读体验,而市面上去水印的功能有多要收费且很不方便,那么 ...
- (超简单2016年发布有效)PDF格式电子书批量删除顽固链接水印
(超简单原创)PDF格式电子书批量删除顽固链接水印 最近在网上下载了一本PDF的电子书,可是上面全部是水印链接严重影响阅读,最烦人的是一不小心就打开了很多链接.参考了网上很多资料都解决不了,非常顽固! ...
- 将图片快速批量转化成PDF格式文件
有时需要将图片快速批量转化成PDF格式文件,要求多个图片合并为一个PDF文件,有没有一个支持多种格式的JPG转换成PDF转换器,能够兼顾解决Office PDF格式间的转换问题? 通过下载测试过不同的 ...
- 批量将OFD格式转化为PDF格式文件(来源于chatgpt)
批量将OFD格式转化为PDF格式文件 一.pyofd库 预先下载pip install pyofd. import os from pyofd import OFDFile from pyofd.re ...
- python批量生成图_利用Python批量生成任意尺寸的图片
实现效果 通过源图片,在当前工作目录的/img目录下生成1000张,分别从1*1到1000*1000像素的图片. 效果如下: 目录结构 实现示例 # -*- coding: utf-8 -*- imp ...
- python数据库操作批量sql执行_利用Python如何批量修改数据库执行Sql文件
利用Python如何批量修改数据库执行Sql文件 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: 利用Python如何批量修改数据库执行Sql文件.txt ] (友 ...
最新文章
- 等比例缩放html5页面,css中如何做到容器按比例缩放
- yolov5训练自己的数据集(缺陷检测分类——看了就懂系列)
- 通过调整Linux内核参数提升网络性能
- NYOJ 108士兵杀敌(一)
- python实战===如何优雅的打飞机
- VC++的windows服务
- 高可用HAProxy——yum安装部署配置使用
- 《Python游戏趣味编程》标准IDE运行游戏代码的配置方法
- 支付宝扫描二维码支付
- IDL多进程批处理遥感数据
- k8s-身份认证与权限
- 图形API的简单了解
- 6s英语语法笔记(图片炸了)
- c语言统计n个正整数中每个数出现的次数,C语言怎么统计每个数出现的个数
- python连接mysql输出数据库结构docx文档
- 第7章第30节:四图排版:四张图片交错对齐排列 [PowerPoint精美幻灯片实战教程]
- 用CSS画一只哆啦A梦
- 《程序员的第一年》---------- 周未回想
- Excel成绩表打印
- 尚硅谷2020最新版宋红康JVM教程-中篇-第3章类的加载过程(类的生命周期)详解-4-过程三:Initialization(初始化)阶段
热门文章
- SP3485,MAX485
- JS实现数据库连接并查询
- 开源纯净版u盘安装工具rufus
- php解析乱码字符串,php中文字符串截取方法防止乱码解析
- Zabbix监控MySQL工具
- 服务器pe系统u盘启动不了,U盘安装系统进不了PE怎么办?U盘装系统进不去pe如何解决?...
- 三菱PLC通信(MC协议A-1E和Qna-3E模式)
- 一寸照纯红色底图片_纯红色背景
- 北师大计算机专业保研率,师范类高校保研情况,3所学校保研率超20%,北师大最高达到35%...
- adams齿轮齿条怎么定义接触,直齿轮adams接触(碰撞)仿真分析