簡體   English   中英

列表中的鏈接-如何使用python pdfkit生成多個pdf

[英]Links from list - How to generate several pdf's using python pdfkit

我目前正在試圖弄清楚如何獲取鏈接列表並使python運行所有鏈接並將其另存為pdf。 (我不是python專家)

我找到了一個名為“ pdfkit”的python軟件包,該軟件包相當不錯,但是如何設置它,使其遵循我的網址列表,並始終將pdf保存為其他名稱?

import pdfkit

config = pdfkit.configuration(wkhtmltopdf="C:\\Program Files (x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe")

pdfkit.from_url('http://google.com', 'MyPDF.pdf', configuration=config)

這是我當前的代碼,可以說我有一個要保存為10個不同pdf文件的10個網頁的列表,我該如何進行設置以允許我這樣做?

另一個問題是,我需要登錄頁面才能從鏈接中抓取信息,您將如何實現呢?

最好的祝福,

回答第一個問題:

import pdfkit

config = pdfkit.configuration(wkhtmltopdf="C:\\Program Files (x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe")

url_list = [
    ['http://google.com', 'google.com.pdf'],
    ['http://facebook.com', 'facebook.com.pdf'],
    ['http://yahoo.com', 'yahoo.com.pdf'],
]

for k, v in url_list:
    pdfkit.from_url(k, v, configuration=config)

對於第二個問題的答案,您可以使用請求模塊會話功能先登錄,然后將cookie傳遞給pdfkit以下載頁面。 請參閱創建需要使用pdfkit登錄的https網頁的PDF。

import selenium.webdriver
import pdfkit
import time

config = pdfkit.configuration(wkhtmltopdf="C:\\Program Files 
(x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe")

driver = selenium.webdriver.Chrome()


driver.get('https://www.linkedin.com/')
time.sleep(1)

driver.find_element_by_id('login-email').send_keys('username')
driver.find_element_by_id('login-password').send_keys('password')
driver.find_element_by_id('login-submit').click()
time.sleep(2)

driver.save_screenshot('output.png') # only visible part

print(driver.page_source)
pdfkit.from_string(driver.page_source, 'file.pdf')

暫無
暫無

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

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