为什么chrome打不开网页将网页保存为PDF后,打开PDF不能复制文字

现在位置:save as pdf插件下载|Save as PDF插件(chrome网页转PDF插件) 1.11官方版 - 河东下载站谷歌浏览器网页怎么保存为pdf文件_chrome将网页保存为pdf文件的方法 - 河东软件园
chrome将网页保存为pdf文件的方法
时间: 16:41作者:Blank来源:本站整理人气:240(0)
  在使用浏览器的过程中我们经常需要保存一些网页,有的用户会将这个界面收藏起来,有的用户会保存该网址的链接,而小编喜欢将这些网页全部保存为pdf文件。这样做是有而很多的好处的,首先我们不必担心网页丢失,其次没有网络也能打开这个页面,作为pdf文件传输也是很方便的!在谷歌浏览器中有很多中将网页保存为pdf格式的方法,小编将这几种方法制造成了一个教程,一起来看看有哪些保存的方法吧!
操作方法:
  方法一:
  1、我们在保存文件的时候使用的最好是最新版本的!接着打开需要保存的浏览器界面,使用快捷键:ctrl+p来进行预览!
  2、进入打印预览界面之后就可以使用该窗口中的&另存为pdf&按钮来进行保存了!
  3、在保存的时候可以直接使用左侧的&保存&按钮进行操作。完成之后到保存的目录中就可以找到pdf格式的网页了!
  方法二:
  1、我们还可以下载安装一个叫做:Adobe Acrobat XI Pro的插件!
  2、安装成功之后双击开始启用它!大家在安装了插件之后一定要重新启动浏览器才能生效喔!接着我们就可以在扩展程序旁边找到这个插件了!
  3、这个插件该如何使用呢?在我们浏览网页的时候,一旦看见自己想要保存的网页,使用鼠标单击扩展中的插件图标,随后就会出现下面的菜单了,选择&将网页转为PDF&就可以进行保存了!
  方法三:
  有的用户在使用浏览器的时候只想保存网页中的某一部分,这时我们一般不使用上面的两种方法,而是下面的这一种:大家可以下载安装一个FireShot插件!它是谷歌的截图插件,将网页截图之后在保存为pdf也是一种方法喔!
  本教程中一共有提到三种将网页保存为pdf文档的方法,大家可以根据自己的需求来选择。若是你不喜欢下载插件可以使用第一种方法,若是你需要长期将网页保存为pdf格式,那么小编建议你使用第二种方法。第三种方法使用的情况较为特殊,大家可以有选择性的使用!目的:使用selenium + Chrome爬取某网站指定类型的乌云公开漏洞文章,即在win10终端输入漏洞类型(如未授权),则爬取所有该类型的漏洞文章,并把每个分页的数字作为文件夹名,来保存该分页下面的所有的漏洞文章。
总结:本例只是能简单的爬取某一类型漏洞的所有文章,但不能爬取多个类型漏洞的所有文章,有时可能会有一些小bug导致没爬取完就崩溃,需要手工修改进而重新爬。其它问题解决看注释。
关于python代码里面出现中文在windows里面的处理,还没完全掌握。可参考Python for Windows 中文编码问题汇总
遇到的超时问题TimeoutException: Message: timeout 还没解决
本例代码只是输入漏洞的指定类型,才可以爬取其所有文章。但如想一块爬取漏洞的类型如 未授权、sql等,导入paramunittest也没搞定
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import unittest
import time
from lxml import etree
import urllib2
import pdfkit
import random
import shutil
import urllib
# import chardet
import paramunittest
# @paramunittest.parametrized(
{'user':'编辑器漏洞','result':'true'},
# {'user':'未授权','result':'true'},
class wooyunSelenium(unittest.TestCase):
# class TestDemo(unittest.TestCase):
利用unittest模块的测试类来解决js分页,模拟点击下一页。
def setUp(self):
# def setParameters(self, user, result):
初始化方法(固定写法),为测试准备环境。
# self.user = user
# self.result = result
# 创建谷歌浏览器对象。
self.driver = webdriver.Chrome()
# 创建无头浏览器对象,实测速度比谷歌浏览器的要快点,但不是很多,没有浏览器窗口界面。
# self.driver = webdriver.PhantomJS()
# input输入的提示语如果是字符串,要加双引号,如果是数字,直接输入(python2),如果是raw_input函数,则不管输入的是什么,全部返回的类型为字符串类型。
# vname = input('请输入要查询的漏洞类型:')
"编辑器漏洞"
# raw_input输入的字符不用加双引号,始终返回字符串类型
self.vname = raw_input('请输入要查询的漏洞类型:')
# 输出类型为str类型,检测该字符串的编码格式
# print chardet.detect(vname)
# 对字符串中文进行url编码使用urllib.quote函数,对字典里面的中文进行url编码使用urlencode函数
# print type(urllib.quote('编辑器漏洞'))
# print urllib.quote('编辑器漏洞')
# 实测发现windows系统的代码里面出现中文,默认编码格式为gbk,要进行解码处理,才不会出现中文乱码。
# print self.vname
os.mkdir(self.vname.decode('gbk'))
os.chdir(self.vname.decode('gbk'))
# 该处发现先解码后编码为utf-8,才可以解决下面成功获取响应内容。
self.vname = urllib.quote(self.vname.decode('gbk').encode('utf-8'))
self.page = 1
# 对self.vname进行url编码,由于是字符串,所以采用urllib.quote()函数来编码字符串成为url编码格式,如果为字典,则使用urlencode函数来处理。
# urllib.uquote(self.vname)
# 请求网页,如果该行代码放在testMooc方法,会导致抓取的数据有重复,而且漏抓。注意vname要转换为urlcode编码格式,否则会报错 UnicodeDecodeError: 'utf8' codec can't decode byte 0xb1 in position 41: invalid start byte
self.driver.get("http://wooyun.jozxing.cc/search?keywords=" + self.vname + "&&content_search_by=by_bugs&&search_by_html=False&&page=" + str(self.page))
# self.driver.get('http://wooyun.jozxing.cc/search?keywords=%E7%BC%96%E8%BE%91%E5%99%A8%E6%BC%8F%E6%B4%9E&content_search_by=by_bugs')
def testWooyun(self):
# def testcase(self):
具体的测试用例方法(方法名开头固定以test开头)
# 加上u用来处理中文乱码,但发现不能使用PhantomJS,老是爆错,而谷歌浏览器则不会。
# os.mkdir(u'代码执行')
# os.chdir(u'命令执行')
# 外循环控制页数,因为经过观察,某类型漏洞文章的最多分页是没有达到1000的,所以用该数以保证爬取到该类型漏洞的所有分页
for i in range(self.page,1000):
# 创建一个文件夹来存放该页所有文章,文件夹名字为分页数字
os.mkdir(str(i))
# 让网页完全加载,避免网页没加载完导致获取的数据丢失
time.sleep(3)
# 获取网页源码
html = self.driver.page_source
# 把源码解析为html dom文档
content = etree.HTML(html)
# 使用xpath去匹配所有的课程链接
links = content.xpath('//td[2]/a/@href')
# 遍历该分页里面的文章链接
for each in links:
each = 'http://wooyun.jozxing.cc/' + each
print each
# self.driver2 = webdriver.Chrome()报错,发现页面空白。至于是漏洞文章页面还是分页页面,还没确定,
# 处代码表明是漏洞文章页面请求为空。大约请求第234个,会出现一个空白页面,一直等待好像死机一样。解决方法把谷歌浏览器驱动程序放入python安装目录下的script目录
self.driver2 = webdriver.Chrome()
# self.driver2 = webdriver.PhantomJS()
# 加上下面2行代码,即设置超时时间,实测发现有效去除 不能读取vr下面的某个文件 报错。Unable to read VR Path Registry from C:\Users\hp\AppData\Local\openvr\openvrpaths.vrpath
self.driver2.set_page_load_timeout(10)
self.driver2.set_script_timeout(10)
# self.driver2.implicitly_wait(10)
self.driver2.get(each)
html2 = self.driver2.page_source
content2 = etree.HTML(html2)
# 获取文章章标题
# title = content2.xpath("//h3[@class='wybug_title']/text()")[0]
# 处理获取不到页面时的异常(页面空白),再请求访问一次(可设置多次甚至循环),获取不到页面的原因可能是网站的反爬机制造成的。
title = content2.xpath("//h3[@class='wybug_title']/text()")[0]
# 关闭当前打开漏洞文章的浏览器窗口,发现使用close有时没作用,则使用quit直接退出当前漏洞文章浏览器窗口
self.driver2.quit()
# 重新获取该漏洞页面
self.driver2 = webdriver.Chrome()
# self.driver2.implicitly_wait(10)
self.driver2.set_page_load_timeout(10)
self.driver2.set_script_timeout(10)
# self.driver2 = webdriver.PhantomJS()
# 怎么老是报超时错误:TimeoutException: Message: timeout
self.driver2.get(each)
html2 = self.driver2.page_source
content2 = etree.HTML(html2)
title = content2.xpath("//h3[@class='wybug_title']/text()")[0]
# 设置保存的文件名,由于windows环境对文件名命名有'/'、'\'、'?'、'|'、'&'、'&'、'"'、'*'有限制,所以要有如下过滤
filename = title[6:].strip().replace('"','').replace('/','_').replace('\\','_').replace('&','').replace('&','').replace('(','').replace(')','').replace('[','').replace(']','').replace('\\','').replace('%','').replace(';','').replace('*','').replace('?','').replace(':','').replace('|','').replace(u'(R)','').replace('.','').replace('&','')
# file = filename + ".pdf"
# 初始文件名
file1 = str(n) + '.pdf'
# 保存文件名
file2 = filename + '.pdf'
path_wk = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf = path_wk)
pdfkit.from_url(each, file1, configuration=config)
path_wk = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf = path_wk)
pdfkit.from_url(each, file1, configuration=config)
self.driver2.quit()
# m变量值用来区分同名文件
# 由于文件名有重复,所以使用递归函数来处理,文件重名的,文件名末尾加递增数字保存。如a.pdf,a2.pdf
self.modify_filename(file1,file2,filename,m)
# time.sleep(random.randint(1,3))
# 把当前分页里面的所有的文章文件移动到对应的分页文件里面
for d in os.listdir('.'):
if d.split('.')[-1] == 'pdf':
shutil.move(d,str(i))
# 退出循环条件,从网页源码里面没找到某个类名,则返回为-1,进而作为当点击下一页时,如果没法点击时,则此时的返回值不为-1
if (html.find('next disabled')) != -1:
# 模拟浏览器手动点击下一页。
phantomjs好像不支持翻页,但有时候测试发现也支持。搞不懂。
self.driver.find_element_by_xpath('//li[@class="next"]/a').click()
# self.assertTrue(self.result == "true")
def modify_filename(self,file1,file2,filename,m):
更改文件名函数
如有多个同名文件,自动在文件名末尾加上数字,从2开始。
if os.path.exists(file2):
file2 = filename + str(m) + '.pdf'
self.modify_filename(file1,file2,filename,m)
os.rename(file1,file2)
def tearDown(self):
''' 退出方法(固定写法),清理测试环境,以备下次测试使用'''
self.driver.quit()
if __name__ == '__main__':
unittest.main()
# unittest.main(verbosity=2)
阅读(...) 评论()请完成以下验证码
查看: 21572|回复: 23
firefox如何实现chrome网页打印里的“另存为PDF”功能
本帖最后由 xiaoyu485 于
10:55 编辑
如题,最近开始使用chrome了,发现一个功能很好,想放到firefox里,因为毕竟还是用firefox顺手……
就是打印里的“另存为PDF”功能,可以保存网页中的链接,而且保存速度很快,几乎是及时的。
_161702.jpg (30.79 KB, 下载次数: 17)
16:30 上传
我知道现在有些扩展或者软件可以实现用虚拟打印机的方式,把网页打印成PDF格式,但是这样,网页上的链接就点击不了了。也有些网站可以把网页保存成可以点击链接的PDF,但是大都是外国网站,链接速度很慢,像以前用的Print Friendly,功能很好,还能提取网页正文,但是链接速度太慢了。
chrome这个可以保存链接,而且速度很快。所以想问,怎么在firefox中实现。
也许是我提问方式不太对吧,谢谢回答的同学。
这个问题已解决。
只是要这个打印成PDF的功能的话,安装 Adobe Reader 就行了。
要保存页面成PDF的扩展的话,看这里:
只是要这个打印成PDF的功能的话,安装 Adobe Reader 就行了。
要保存页面成PDF的扩展的话,看这里:
  看来我说的啰嗦,没仔细看,
1、保存为PDF后,网页上的链接能够点击,就是还是超链接形式。
2、保存速度越快越好。
  很多虚拟打印机,能把网页打印成PDF格式,但是都失去链接了。我截图上pdf-xchange是不是跟你说的adobe reader一样呢?
  很多扩展也是像虚拟打印机一样,没有保存链接,有些则是保存速度太慢。
  想问问大家,有没有快点的,没有丢失链接的呢?
  看来我说的啰嗦,没仔细看,
1、保存为PDF后,网页上的链接能够点击,就是还是超链接形式。
我没有保存成PDF的习惯,通常都是发送到ONENOTE,然后另存成WORD或TXT。
刚试了下,在ONENOTE里导出成PDF,链接点击正常。
你既然有这么多要求,东西已经放在那里了,为什么不动手验证一下。
我没有保存成PDF的习惯,通常都是发送到ONENOTE,然后另存成WORD或TXT。
刚试了下,在ONENOTE里导出成PD ...
因为我已经用过不少把网页保存成pdf的网站,扩展很久之前也都,算是一个个试用过,忘了什么原因了,都没留下。
当然,不一定非要保存成PDF,保存成word也行,只要是离线单个文件,链接能点击就行,我现在经常用百度云的保存正文功能,感觉也很好,不过我喜欢保存到硬盘上。
还有,这个提问,我最想知道的是chrome的这个功能是怎么实现的,是否能移植到firefox上。
因为我已经用过不少把网页保存成pdf的网站,扩展很久之前也都,算是一个个试用过,忘了什么原因了,都没 ...
我一般UnMHT扩展直接另存为mht
我一般UnMHT扩展直接另存为mht
我以前也是存MHT,现在改用“Mozilla Archive Format”,能够兼容和转化MHT,而且它自带的格式MAFF带压缩功能,保存的文件更小。
一直Mozilla Archive Format
而且mht比pdf实用,是个浏览器就能打开
我以前也是存MHT,现在改用“Mozilla Archive Format”,能够兼容和转化MHT,而且它自带的格式MAFF带压缩 ...
一直在用mht,没注意其他,以前是觉得兼容不错,不知道maff如何?浏览器兼容怎样?
Copyright & KaFan &KaFan.cn All Rights Reserved.
Powered by Discuz! X3.4( 苏ICP备号 ) GMT+8,}

我要回帖

更多关于 手机chrome翻译网页 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信