Python + Selenium + PhantomJS渲染为PDF - 多个文件

时间:2015-07-01 18:55:38

标签: html python-2.7 pdf selenium-webdriver phantomjs

我正在尝试添加

中的代码
  

Python + Selenium + PhantomJS render to PDF

所以我不是将一个网页保存为pdf文件,而是可以遍历一个网址列表并使用特定名称(从另一个列表中)保存每个网址。

count = 0
while count < length:
    def execute(script, args):
        driver.execute('executePhantomScript', {'script': script, 'args' : args })

    driver = webdriver.PhantomJS('phantomjs')

    # hack while the python interface lags
    driver.command_executor._commands['executePhantomScript'] = ('POST',     '/session/$sessionId/phantom/execute')

    driver.get(urls[count])

    # set page format
    # inside the execution script, webpage is "this"
    pageFormat = '''this.paperSize = {format: "A4", orientation: "portrait" };'''
    execute(pageFormat, [])

    # render current page
    render = '''this.render("test.pdf")'''
    execute(render, [])

    count+=1

我测试了修改

render = '''this.render("test.pdf")'''

render = '''this.render(names[count]+".pdf")'''

以便使用计数在列表中包含每个名称但尚未成功。

也尝试过:

dest = file_user[count]+".pdf"

render = '''this.render(dest)'''
execute(render, [])

但也没有用。

我非常感谢有关适当语法的建议。

它必须非常简单,但我是一个noobie。

1 个答案:

答案 0 :(得分:1)

使用string formatting

render = 'this.render("{file_name}.pdf")'.format(file_name=names[count])