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

您所在的位置:网站首页 知乎网页版不能看了怎么办 解决知乎页面打印时下方文字被遮挡的问题

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

2024-07-10 06:05| 来源: 网络整理| 查看: 265

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

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

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

想了各种办法之后,写了这么个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])

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3