簡體   English   中英

如何在python中將網頁轉換為pdf,例如在打印中另存為pdf選項

[英]How to convert webpage to pdf in python like the save as pdf option in print

我有一個需要登錄(身份驗證)的網站,該網站有一個消息頁面,我想將所有評論轉換為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 lib將每個評論頁面轉換為pdf,但未成功。 我嘗試使用url( pdfkit.from_url ),僅使用字符串( pdfkit.from_string ),並將html保存到文件( pdfkit.from_file ),但無法弄清楚為什么它不起作用。 據我所知,機械化的東西起作用是因為我的html文件包含我想要的所有注釋以及正確的內容。 我到處尋找不同的方法,但這是我所想要的。

該腳本不會引發任何錯誤,它只能與第一個pdf一起掛起,因為它無法訪問頁面/內容。 我讓它運行了一段時間,但只創建了第一個pdf文件,但是當我嘗試打開它時,它說它已損壞。 我是否使用pdfkit錯誤?還是應該使用其他方式將這些頁面轉換為pdf? 謝謝,感謝您的幫助。 在Mac OS X上運行。

我最初的猜測是pdfkit不會從機械化接收任何會話信息,因此它嘗試使用身份驗證后的頁面而不登錄。

您可能應該首先使用機械化下載html,然后將其本地轉換。

但是,由於您說您也無法從文件中獲取結果,因此您應該嘗試使用交互式python shell並嘗試將pdfkit手動應用於本地文件,以查看出現什么錯誤。

另一件事可能是pdfkit輸入文件或輸出文件不在您可能合理期望的目錄中,因此應嘗試使用絕對路徑作為參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM