列表中的链接 - 如何使用 python pdfkit 生成多个 pdf
Links from list - How to generate several pdf's using python pdfkit
我目前正在尝试弄清楚如何获取链接列表并python 运行 遍历所有链接并将它们保存为 pdf。 (我不是 python 专家)
我找到了一个名为 "pdfkit" 的 python 包,它非常好,但我该如何设置它以便它遵循我的 url-list 并将 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 个网页的列表,我想将它们另存为 10 个不同的 pdf 文件,我该如何进行设置以允许我这样做?
另一个问题是我需要登录页面才能从链接中抓取信息,您将如何实现?
此致,
第一个问题的答案:
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)
第二个问题的答案,可以使用requests模块session功能先登录,然后将cookie传给pdfkit下载页面。参见
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')
我目前正在尝试弄清楚如何获取链接列表并python 运行 遍历所有链接并将它们保存为 pdf。 (我不是 python 专家)
我找到了一个名为 "pdfkit" 的 python 包,它非常好,但我该如何设置它以便它遵循我的 url-list 并将 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 个网页的列表,我想将它们另存为 10 个不同的 pdf 文件,我该如何进行设置以允许我这样做?
另一个问题是我需要登录页面才能从链接中抓取信息,您将如何实现?
此致,
第一个问题的答案:
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)
第二个问题的答案,可以使用requests模块session功能先登录,然后将cookie传给pdfkit下载页面。参见
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')