【发布时间】:2018-03-30 10:15:19
【问题描述】:
我有一个需要登录(身份验证)的网站,该网站有一个消息页面,我想将所有 cmets 转换为 pdf。最初我只是点击每条评论并在 Firefox 浏览器中选择打印,然后将评论流保存为 pdf。问题是有这么多,所以我决定编写一个 python 脚本,但我遇到了问题。这是我的代码:
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 库将每个评论页面转换为 pdf,但没有成功。我尝试使用 url (pdfkit.from_url)、字符串 (pdfkit.from_string),并将 html 保存到文件 (pdfkit.from_file),但无法弄清楚为什么这不起作用。据我所知,机械化的东西是有效的,因为我的 html 文件包含我想要的所有 cmet 以及正确的内容。我环顾四周寻找不同的方法,但这就是我想要的。
脚本不会抛出任何错误,它只是挂在第一个 pdf 上,就像它无法访问页面/内容一样。我让它运行了一段时间,但只创建了第一个 pdf 文件,但是当我尝试打开它时,它说它已损坏。我使用 pdfkit 错误还是应该使用其他东西将这些页面转换为 pdf?谢谢,任何帮助表示赞赏。在 mac os x 上运行。
【问题讨论】:
-
考虑切换到 Selenium。这些天我真的很喜欢 nightmarejs。
-
@pguardiario 最终使用 selenium,好多了。
标签: python macos python-2.7 mechanize pdfkit