使用webdriver + phantomjs + pdfkit 生成PDF文件

实例

#!/usr/bin/python
# -*- coding: utf-8 -*-

‘‘‘
Created on Dec 6, 2013

@author: Jay <[email protected]>
@description: use PhantomJS to parse a web page to get the geo info of an IP
‘‘‘
import datetime
import urllib
# from pyquery import PyQuery as pq
import pdfkit

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait  # available since 2.4.0
from selenium.webdriver.support import expected_conditions as EC  # available since
import time

#import db
#from db import exec_sql, fetchone_sql, fetchall_sql

import sys
reload(sys)
sys.setdefaultencoding(‘utf-8‘)

def spider_question(url):
    """
    功能说明:根据URL生成PDF
    """
    browser = webdriver.PhantomJS(executable_path=‘./phantomjs‘)  # 这要可能需要制定phatomjs可执行文件的位置
    # browser.set_window_size(1024, 786)
    print ‘start request url‘, datetime.datetime.now()
    browser.get(url)  # Load page
    print ‘end request url‘, datetime.datetime.now()
    try:
        WebDriverWait(browser, 60).until(EC.title_contains("complete"))  # 查找数据,500毫秒查找一次,找到则继续执行下面代码,超过10秒抛出异常
    except Exception, e:
        print "http 500"
        print e
        browser.quit()
        return "response_500"
    print "end math load:", datetime.datetime.now()
    html = browser.find_element_by_tag_name("html").get_attribute("innerHTML")
    browser.quit()
    html = ‘<!DOCTYPE html><html>‘ + html + "</html>"

    print ‘begin pdfkit:‘, datetime.datetime.now()
    pdf_name = "test2.pdf"
    pdfkit.from_string(html, pdf_name)
    print "end pdfkit", datetime.datetime.now()

    return html

def main():
    #url = "http://192.168.0.126/tea/test/wrongset/download/question/?day_list=20151103&user_id=849127&js=1"
    url = "http://192.168.0.126/open/math2_preview/?js=1&engine=webkit2&css=0"
    now = datetime.datetime.now()
    spider_question(url)
    now2 = datetime.datetime.now()
    print(now2-now)
    # pdfkit.from_string("hello", ‘test.pdf‘)

if __name__ == "__main__":
    main()
    print "completed"
时间: 2024-12-21 22:05:03

使用webdriver + phantomjs + pdfkit 生成PDF文件的相关文章

java调用wkhtmltopdf生成pdf文件,美观,省事

最近项目需要导出企业风险报告,文件格式为pdf,于是搜了一大批文章都是什么Jasper Report,iText ,flying sauser ,都尝试了一遍,感觉不是我想要的效果, 需要自己调整好多东西,样式,字体等等,好麻烦,毕竟博主这么懒的人,哈哈.-------jstarseven 言归正传: java生成pdf文件,方式很多,以上提到的哪几种方式具体可以参考这篇文章<讲解很详细>:http://blog.csdn.net/ouyhong123/article/details/2640

thinkphp整合系列之tcpdf类生成pdf文件

php生成pdf文件的需求是不怎么常见的:当然也是有的: 既然已经整合使用了:那就写篇博客来讲解下吧: 示例项目:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin 一:引入tcpdf /ThinkPHP/Library/Vendor/Tcpdf 把tcpdf整个目录拷到自己的项目中: 二:函数 /Application/Common/Common/function.php /** * 生成pdf * @param  string $html

.NET生成PDF文件

C#未借助第三方组件,自己封装通用类,生成PDF文件. 调用方式: //路径 string path = @"C:\yuannwu22.pdf"; //内容 string strContent = "ddd3232342434d"; new PDFGenerator.PDFGenerator(path, strContent).Create(); 下载地址: http://pan.baidu.com/s/1kTIchev?

ThinkPHP3.2.3扩展之生成PDF文件(MPDF)

目前是PHP生成PDF文件最好的插件了,今天介绍下在ThinkPHP3.2.3里如何使用. 先安照路径放好如图. 下面是使用方法 public function pdf(){ //引入类库 Vendor('mpdf.mpdf'); //设置中文编码 $mpdf=new \mPDF('zh-cn','A4', 0, '宋体', 0, 0); //html内容 $html='<h1><a name="top"></a>一个PDF文件</h1>

MFC使用Haru free pdf lib生成pdf文件

MFC使用Haru free pdf lib生成pdf文件 我们先创建一个项目MFCPDFDemo,在上面添加一个编辑框和一个按钮: haru free pdf类库下载地址 这里直接下载dll,如果想以静态库的方式使用,得下载源码自己编译.然后把这个dll添加到项目中,怎么添加就不说了吧,还是说一下吧,万一有新手看不懂呢.解压后我们要用到三个东西:libhpdf.dlllibhpdf.libinclude整个文件夹解压后复制libhpdf.dll到项目的release和debug目录下:libh

怎么用PHP在HTML中生成PDF文件

原文:Generate PDF from html using PHP 译文:使用PHP在html中生成PDF 译者:dwqs 利用PHP编码生成PDF文件是一个非常耗时的工作.在早期,开发者使用PHP并借助FPDF来生成PDF文件.但是如今,已经有很多函数库可以使用了,并且能够从你提供的HTML文件生成PDF文档.这让原先耗时的工作变得非常简单了. FPDF是很早就被使用的,其特点如下: FPDF FPDF是一个允许使用纯PHP生成PDF文档的PHP类,换句话说,没有使用PDFlib 函数库.

史上最强php生成pdf文件,html转pdf文件方法

之前有个客户需要把一些html页面生成pdf文件,然后我就找一些用php把html页面围成pdf文件的类.方法是可谓是找了很多很多,什么html2pdf,pdflib,FPDF这些都试过了,但是都没有达到我要的求. pdflib,FPDF 这两个方法是需要编写程序去生成pdf的,就也是讲不支持直接把html页面转换成pdf:html2pdf这个虽然可以把html页面转换成pdf文 件,但是它只能转换一般简单的html代码,如果你的html内容要的是通过后台新闻编辑器排版的那肯定不行的. 纠结了半

使用flying-saucer,利用HTML来生成PDF文件(裴东辉)

1.导入maven依赖 <flyingSaucer.version>9.1.0</flyingSaucer.version> <!-- flying-saucer --> <dependency>    <groupId>org.xhtmlrenderer</groupId>     <artifactId>flying-saucer-pdf</artifactId>     <version>${

JAVA生成PDF文件

生成PDF文件是主要应用的是ITEXT插件 1 import java.awt.Color; 2 import java.io.File; 3 import java.io.FileOutputStream; 4 import java.io.IOException; 5 import java.util.ArrayList; 6 import java.util.List; 7 8 import com.lowagie.text.Cell; 9 import com.lowagie.text.