如何捕获外部网站内容?

时间:2015-06-30 11:52:11

标签: javascript cordova web-scraping

目前我正在开发一个使用url调用外部网站的应用程序。现在网站正在浏览不同的页面。

我创建了一个按钮,一旦按钮录制应用程序捕获当前网址的内容,例如www.example.com/aboutme.html,并希望生成pdf或png,复制所有数据,包括数据,样式图像等所有内容。

注意:我还使用了ScreenShot cordova插件,但它只捕获应用程序的当前可见屏幕而不是包含滚动数据,这不是必需的。

谷歌之后我现在正在使用Html2canvas的功能 使用html2canvas.js,canvas2image.js,jspdf.debug.js

html2canvas( [document.body],{
         allowTait: true,
         logging:true,
         useCORS: true,
         onrendered: function(canvas) {     
         document.body.appendChild(canvas);                             
         var imgData = canvas.toDataURL("image/jpeg", 1.0); 
         var pdf = new jsPDF();         
         pdf.addImage(imgData, 'JPEG', 0, 0);
         pdf.save("mypdf.pdf");     
      }
    })

此代码在网络浏览器中正常生成pdf,但它无法在当前使用Android的设备上运行。

2)有关设备特定代码,请参阅以下代码

    var doc = new jsPDF('p', 'in', 'letter');
        html2canvas([ document.body ], {
            allowTait : true,
            logging : true,
            useCORS : true,
            onrendered : function(canvas) {
                var imgData = canvas.toDataURL('image/JPEG', 1.0);
                doc.addImage(imgData, 'JPEG', 0, 0);
            }
        });
        var pdfOutput = doc.output();
        console.log("file system...");
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(
                fileSystem) {
            console.log(fileSystem.name);
            console.log(fileSystem.root.name);
            console.log(fileSystem.root.fullPath);
            fileSystem.root.getFile("sajjad.pdf", {
                create : true
            }, function(entry) {
                alert(entry);
                var fileEntry = entry;
                console.log("fileSystem.name" + fileSystem.name + " "
                        + "fileSystem.root.name " + fileSystem.root.name
                        + " ");
                entry.createWriter(function(writer) {
                    writer.onwrite = function(evt) {
                        console.log("write success");
                    };
                    console.log("writing to file");
                    writer.write(pdfOutput);
                    alert("Generating done.");
                }, function(error) {
                    console.log(error);
                });

            }, function(error) {
                console.log(error);
            });
        }, function(event) {
            console.log(evt.target.error.code);
        });
    }

有什么建议吗?

0 个答案:

没有答案