首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何像打印中的另存为pdf选项一样,在python中将网页转换为pdf

如何像打印中的另存为pdf选项一样,在python中将网页转换为pdf
EN

Stack Overflow用户
提问于 2017-10-18 21:54:08
回答 1查看 1.2K关注 0票数 1

我有一个网站,这需要登录(认证),有一个消息页面,我想把所有的评论转换为pdf。最初,我只是点击每条评论,在firefox浏览器中选择打印,然后将评论流保存为pdf。问题是太多了,所以我决定写一个python脚本,但我遇到了问题。下面是我的代码:

代码语言:javascript
运行
复制
import mechanize
import pdfkit
import os

br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [("User-agent","Firefox")]
sign_in = br.open("www.mysite.com")

br.select_form(nr = 0)
br["username"] = "username"
br["password"] = "password"
logged_in = br.submit()

br.open("comments_page")
all_comment_links = []

# Iterate the links
for link in br.links():
  if "comment" in link.url:
    all_comment_links.append(link)

for l in all_comment_links:
  ret = br.open("comments_page").read()
  pdfkit.from_url(l.url, l.text + ".pdf")
  # pdfkit.from_string(ret, l.text + ".pdf")

  file = open(l.text + ".html", "w")
  file.write(ret)
  file.close()

# try from file
#for f in glob.glob("*.html"):
#  pdfkit.from_file(f, f.replace(".html", ".pdf"))

我正在尝试使用pdfkit lib将每个评论页面转换为pdf,但没有成功。我试过使用url (pdfkit.from_url),只使用字符串(pdfkit.from_string),并将html保存到一个文件(pdfkit.from_file)中,但我不明白为什么这样做不起作用。据我所知,机械化的东西是有效的,因为我的html文件包含了我想要的所有注释和正确的内容。我四处寻找了不同的方法,但这就是我想要的。

脚本没有抛出任何错误,它只是挂起了第一个pdf,就像它不能访问页面/内容一样。我让它运行了一段时间,但只创建了第一个pdf文件,但当我试图打开它时,它显示它已损坏。我是不是用错了pdfkit,还是应该用别的东西把这些页面转换成pdf?谢谢,任何帮助我们都很感激。在mac os x上运行。

EN

回答 1

Stack Overflow用户

发布于 2017-10-18 21:58:44

我最初的猜测是,pdfkit没有从mechanize收到任何会话信息,所以它试图在没有登录的情况下使用身份验证后的页面。

你可能应该先用mechanize下载html,然后在本地转换它。

但是,既然您说没有从文件中获得结果,那么您应该尝试交互式python shell,并尝试手动将pdfkit应用于本地文件,看看您得到了什么错误。

另一件事可能是pdfkit输入或输出文件不在您合理预期的目录中,因此应该尝试将绝对路径作为参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46811865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档