最近在知乎上看到了两个很好的专栏,想打印出来看纸质版。

但是,用谷歌浏览器打印知乎专栏的时候发现图片经常加载不出来,同时每页下方的文字都会被遮挡,如下图:

除此之外,评论页面也没什么用,但还是会被打印出来。

想了各种办法之后,写了这么个Python脚本,用于删除知乎页面上无用的信息,然后再打印。

实现的核心思想就是用Python脚本来控制鼠标和键盘,替代人手工作业,删除知乎网页上的无用element(包括上边栏、下边栏、返回顶部、评论、页面最上面作者加的大图等)。

因此,脚本运行过程中,不可以由人来控制计算机的鼠标跟键盘。

# -*- coding: utf-8 -*-
import webbrowser
import pyautogui
import  time
from ctypes import *# web_list = ["https://zhuanlan.zhihu.com/p/137063203","https://zhuanlan.zhihu.com/p/154910415","https://zhuanlan.zhihu.com/p/169805550",
#             "https://zhuanlan.zhihu.com/p/186290568", "https://zhuanlan.zhihu.com/p/262294180","https://zhuanlan.zhihu.com/p/262948196",
#             "https://zhuanlan.zhihu.com/p/66085740","https://zhuanlan.zhihu.com/p/48350238","https://zhuanlan.zhihu.com/p/66901788",
#             "https://zhuanlan.zhihu.com/p/48388642","https://zhuanlan.zhihu.com/p/48388552","https://zhuanlan.zhihu.com/p/74805885",
#             "https://zhuanlan.zhihu.com/p/74679464","https://zhuanlan.zhihu.com/p/103948841","https://zhuanlan.zhihu.com/p/138317164"]
web_list = ["https://zhuanlan.zhihu.com/p/48388552","https://zhuanlan.zhihu.com/p/74805885","https://zhuanlan.zhihu.com/p/74679464","https://zhuanlan.zhihu.com/p/103948841","https://zhuanlan.zhihu.com/p/138317164"]chromePath = r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'# 取消注释用于测试鼠标坐标
# while True:
#     print(pyautogui.position())# 删除网页元素的函数
def del_ele(site):pyautogui.hotkey('ctrl', 'shift', 'c')time.sleep(3)pyautogui.click(x=site[0], y=site[1], clicks=1)time.sleep(2)pyautogui.press('del')print("del:", site)time.sleep(1)def save(web):webbrowser.register('chrome', None, webbrowser.BackgroundBrowser(chromePath))webbrowser.get('chrome').open(web,new=1,autoraise=True)time.sleep(2)for i in range(40):pyautogui.press('PageDown')time.sleep(0.1)time.sleep(0.2)pyautogui.press('F12')time.sleep(0.5)del_ele((20, 100))del_ele((40, 900))del_ele((1291, 1017))pyautogui.click(x=40, y=900)time.sleep(1)for i in range(40):pyautogui.press('PageUp')time.sleep(0.1)del_ele((221, 1031))del_ele((664, 130))time.sleep(1)pyautogui.press('F12')time.sleep(0.1)pyautogui.hotkey('ctrl','p')time.sleep(15)pyautogui.press('enter')time.sleep(1)pyautogui.press('enter')time.sleep(1)for i in range(len(web_list)):save(web_list[i])

解决知乎页面打印时下方文字被遮挡的问题相关推荐

  1. html页面打印时背景颜色无效的解决方案

    我遇到的情况是,在引入bootstrap框架之后,想打印自己的个人简历页面,发现之前设定的样式,背景颜色通通变得无效,问题原因是bootstrap.css的默认样式, @media print {   ...

  2. MUI - 解决bug: iphone页面保存时popPicker自动弹出来

    链接在这 http://www.cnblogs.com/phillyx/ 转载于:https://www.cnblogs.com/phillyx/p/4690215.html

  3. window.print打印时分页的问题

    使用window.print浏览器页面打印时,有时候需要将不同的内容呈现在非同一纸张上,而默认的打印是按高度形成分页的,所以需要手动的调节分页的时候,需要加入"page-break-afte ...

  4. jsp 页面打印 纵向横向设置

    jsp页面打印-JS打印设置 技术 2010-04-07 13:14:11 阅读139 评论0 字号:大中小订阅 重点: <OBJECT id=WebBrowser classid=CLSID: ...

  5. php在页面打印,[转载]PHP打印页面

    1.控制"纵打".横打"和"页面的边距. (1) function SetPrintSettings() { // -- advanced features f ...

  6. html打印时显示不全,打印表格时内容显示不完整怎么办?四种方法解决WPS不完整问题...

    在打印表格时,偶尔出现表格内容显示不完整的状况,这是什么原因导致的呢?出现这样的情况应该如何处理?接下来为大家介绍几种处理方法,可以对应情况来解决. 一.取消打印区域 打印表格显示不完整,有可能是因为 ...

  7. 解决 H5 IOS input 聚焦时,软键盘将页面整个推上去,键盘收起页面未下移 BUG

    目录 问题描述 解决方案 问题描述 近日在开发H5应用时,测试人员发现在IOS低版本中input,textArea等输入框聚焦时,软键盘弹起会将整个页面向上顶,收回键盘后,页面不会回弹恢复页面,导致页 ...

  8. 办公软件之excel打印时打印区域与纸张不符解决方法

    在办公的同时 难免要遇到作一些表之类的 但是呢 也会常常遇到一些棘手的问题 那么我们接下来就解决一下这个办公软件之excel打印时打印区域与纸张不符解决方法 一:首先插入分页符 有助于我们排版的方便  ...

  9. action无法传参数给html页面,HTML 解决form表单提交时,action url中参数无效问题

    这篇文章主要为大家详细介绍了HTML 解决form表单提交时,action url中参数无效问题,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! ...

最新文章

  1. 如果足够准的话,还有比体脂秤更好的身体数据采集器吗?
  2. 部署Windows Server Update Services 4.0
  3. mybatisplus 一次性执行多条SQL语句插入(Oracle篇)
  4. 共享的网络如何让自己比别人快_OPPO K3如何共享网络?
  5. metrics-server 安装问题解决
  6. robotac属于a类还是b类_所得税A类和B类的区别,什么样的属于B类??
  7. 用户控件中图片路径问题(用户控件、图片路径) ,ResolveUrl
  8. mshtml 解析html c,使用MSHTML解析HTML代码
  9. 【ELK解决方案】ELK集群+RabbitMQ部署方案以及快速开发RabbitMQ生产者与消费者基础服务...
  10. 史上最全Python快速入门教程
  11. recovery 工作流程
  12. 计算机文档我的文档丢失,我的文档不见了怎么办?我的文档图标不见了找回方案...
  13. 厦门大学计算机学院控制系,厦门大学
  14. trueOS能装linux软件,TrueOS 17.12发布下载,一款基于FreeBSD的桌面Linux系统
  15. Flask-APScheduler使用教程 1
  16. ubuntu16.04调整屏幕分辨率
  17. 域服务器文件备份,怎么备份域服务器?
  18. insert into select 语法使用
  19. 几种最小二乘法及python代码:ELS、TLS、RLS
  20. ableton live10中文版|音乐制作软件 附安装教程

热门文章

  1. git stash暂存操作
  2. 用matlab作椭圆方程,用matlab做椭圆拟合方程
  3. 《“己学”发略》发略
  4. Object.defineProperty 以及 Proxy对比和基本语法 实干vue3数据响应
  5. Mac Mounty 安全退出硬盘
  6. matlab最大回撤值,用matlab计算区间最大回撤值和最大回撤率
  7. 实时汇率转换小程序(c++爬虫)
  8. PhoneGap VS. Titanium
  9. [关于决策单调性DP]
  10. FTP 21端口和20端口有什么区别?