使用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格式文件,批量下载到本地!...相关推荐

  1. python rtf转txt_将DOC、RTF格式文件批量转为TXT格式文件

    Windows 下将目录下所有文件下的文件 拷贝到一个目录中:搜索"." 安装python 及 win32com模块 pip install pypiwin32 创建LDA_RTF ...

  2. 【ASE+python】实现将poscar格式文件批量转换为xsd格式文件

    将poscar格式文件批量转换为xsd格式文件 ASE介绍 ASE安装 ASE的ase.io.read()与ase.io.write() ase.io.read() ase.io.write() 单份 ...

  3. 教你用8行代码将word转换为pdf格式 及 6行代码实现批量将word转换为pdf格式--python实用小技能get起来

    目录 将word转换为pdf格式 安装pywin32 上代码 运行结果 批量实现word转pdf 安装docx2pdf 上代码 运行结果 将word转换为pdf格式 安装pywin32 代码(Anac ...

  4. Python模块介绍使用:img2pdf 几行代码将图片转为PDF格式文件

    hello,大家好,今天我来推荐一个模块--img2pdf,这个模块可以把图片转换为pdf,开始学习吧! 1. pip安装 使用命令: pip install img2pdf 安装完毕后,打开一个Py ...

  5. PDF大文件批量去除水印,又一个省心小妙招

    PDF大文件批量去除水印,又一个省心小妙招 导入 在阅读过程中如果遇到一些带有水印的资料是比较烦心的,如下图所示,水印以及类似的内容会影响我们的阅读体验,而市面上去水印的功能有多要收费且很不方便,那么 ...

  6. (超简单2016年发布有效)PDF格式电子书批量删除顽固链接水印

    (超简单原创)PDF格式电子书批量删除顽固链接水印 最近在网上下载了一本PDF的电子书,可是上面全部是水印链接严重影响阅读,最烦人的是一不小心就打开了很多链接.参考了网上很多资料都解决不了,非常顽固! ...

  7. 将图片快速批量转化成PDF格式文件

    有时需要将图片快速批量转化成PDF格式文件,要求多个图片合并为一个PDF文件,有没有一个支持多种格式的JPG转换成PDF转换器,能够兼顾解决Office PDF格式间的转换问题? 通过下载测试过不同的 ...

  8. 批量将OFD格式转化为PDF格式文件(来源于chatgpt)

    批量将OFD格式转化为PDF格式文件 一.pyofd库 预先下载pip install pyofd. import os from pyofd import OFDFile from pyofd.re ...

  9. python批量生成图_利用Python批量生成任意尺寸的图片

    实现效果 通过源图片,在当前工作目录的/img目录下生成1000张,分别从1*1到1000*1000像素的图片. 效果如下: 目录结构 实现示例 # -*- coding: utf-8 -*- imp ...

  10. python数据库操作批量sql执行_利用Python如何批量修改数据库执行Sql文件

    利用Python如何批量修改数据库执行Sql文件 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  利用Python如何批量修改数据库执行Sql文件.txt ] (友 ...

最新文章

  1. 等比例缩放html5页面,css中如何做到容器按比例缩放
  2. yolov5训练自己的数据集(缺陷检测分类——看了就懂系列)
  3. 通过调整Linux内核参数提升网络性能
  4. NYOJ 108士兵杀敌(一)
  5. python实战===如何优雅的打飞机
  6. VC++的windows服务
  7. 高可用HAProxy——yum安装部署配置使用
  8. 《Python游戏趣味编程》标准IDE运行游戏代码的配置方法
  9. 支付宝扫描二维码支付
  10. IDL多进程批处理遥感数据
  11. k8s-身份认证与权限
  12. 图形API的简单了解
  13. 6s英语语法笔记(图片炸了)
  14. c语言统计n个正整数中每个数出现的次数,C语言怎么统计每个数出现的个数
  15. python连接mysql输出数据库结构docx文档
  16. 第7章第30节:四图排版:四张图片交错对齐排列 [PowerPoint精美幻灯片实战教程]
  17. 用CSS画一只哆啦A梦
  18. 《程序员的第一年》---------- 周未回想
  19. Excel成绩表打印
  20. 尚硅谷2020最新版宋红康JVM教程-中篇-第3章类的加载过程(类的生命周期)详解-4-过程三:Initialization(初始化)阶段

热门文章

  1. SP3485,MAX485
  2. JS实现数据库连接并查询
  3. 开源纯净版u盘安装工具rufus
  4. php解析乱码字符串,php中文字符串截取方法防止乱码解析
  5. Zabbix监控MySQL工具
  6. 服务器pe系统u盘启动不了,U盘安装系统进不了PE怎么办?U盘装系统进不去pe如何解决?...
  7. 三菱PLC通信(MC协议A-1E和Qna-3E模式)
  8. 一寸照纯红色底图片_纯红色背景
  9. 北师大计算机专业保研率,师范类高校保研情况,3所学校保研率超20%,北师大最高达到35%...
  10. adams齿轮齿条怎么定义接触,直齿轮adams接触(碰撞)仿真分析