Đây là một giải pháp sử dụng selen và lệnh đặc biệt cho GhostDriver (nó nên làm việc kể từ GhostDriver 1.1.0 và PhantomJS 1.9. 6, thử nghiệm với PhantomJS 1.9.8):
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""Download a webpage as a PDF."""
from selenium import webdriver
def download(driver, target_path):
"""Download the currently displayed page to target_path."""
def execute(script, args):
driver.execute('executePhantomScript',
{'script': script, 'args': args})
# hack while the python interface lags
driver.command_executor._commands['executePhantomScript'] = ('POST', '/session/$sessionId/phantom/execute')
# set page format
# inside the execution script, webpage is "this"
page_format = 'this.paperSize = {format: "A4", orientation: "portrait" };'
execute(page_format, [])
# render current page
render = '''this.render("{}")'''.format(target_path)
execute(render, [])
if __name__ == '__main__':
driver = webdriver.PhantomJS('phantomjs')
driver.get('http://stackoverflow.com')
download(driver, "save_me.pdf")
cũng xem câu trả lời của tôi cho câu hỏi cùng here.
Bạn đã xem Pypdf2 chưa? http://www.blog.pythonlibrary.org/tag/python-pdf-series/ – Amit
@Amit: Thay vào đó rộng rãi, khi tôi sử dụng nó mọi lúc. Ngay cả Phaseit cũng đã nói rằng "PyPDF2 không có kiến thức về HTML". Nó sẽ không hiển thị bất kỳ HTML nào đáng tin cậy. – Rejected
@ Bị từ chối bạn có cần ảnh chụp màn hình xảy ra ở trạng thái chính xác trong khi thử nghiệm không? Hay bạn chỉ đang tìm cách tải một trang và hiển thị lên PDF? –