Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 获取生成的网页源_Html_Perl_Web Scraping_Phantomjs - Fatal编程技术网

Html 获取生成的网页源

Html 获取生成的网页源,html,perl,web-scraping,phantomjs,Html,Perl,Web Scraping,Phantomjs,我想放弃一个投注页面的结果。该web页面是由DINAMICAL生成的,并且后面运行了一些javascript(至少这是我从源代码中推断出来的)。到目前为止,我试图用Perl(wget)获取网页的内容 但这并没有起作用(输出与我在浏览器->查看页面源中右键单击得到的输出相同) 然后我尝试了幻影: var page = require('webpage').create(); page.open('https://www.superbet.ro/pariuri-sportive', function

我想放弃一个投注页面的结果。该web页面是由DINAMICAL生成的,并且后面运行了一些javascript(至少这是我从源代码中推断出来的)。到目前为止,我试图用Perl(wget)获取网页的内容

但这并没有起作用(输出与我在浏览器->查看页面源中右键单击得到的输出相同)

然后我尝试了幻影:

var page = require('webpage').create();
page.open('https://www.superbet.ro/pariuri-sportive', function (status) {
    console.log("status: " + status);
    if (status !== "success") {
      console.log("Unable to access network");
    } else {
    window.setTimeout(function() {
        var fs = require('fs');
        try {
            fs.write("C:/Users/Cristi/Desktop/output.html", page.content, 'w');
        } catch(e) {
            console.log(e);
        }
    }, 10000); // adjust time for every page        }
});
同样的结果

然后我尝试在firefox中安装
WebDeveloper
,并通过右键单击->WebDeveloper->查看源代码->查看生成的源代码来访问生成的内容。这个输出实际上就是我想要得到的。但是我想用一种自动的方式来代替手工操作


我在Perl或phantomJs方法中做错了什么?有没有一种方法可以让
Web开发人员
加载项从脚本或批处理文件获取生成的源代码?

我想问题是perl和phantom.js正确获取html代码。如果JS代码正在生成一些内容,那么perl和phantom.JS将无法显示这些内容。然后,内容通过JavaScript生成,而不是由perl脚本执行。试着看看这个节点模块:文档中说,它能够下载动态生成的内容。它是此节点模块的“扩展”:在Perl中,您可以使用WWW::Mechanize::Firefox远程控制计算机上的Firefox窗口。这有点像Selenium,它会自动在窗口中单击,您可以取出部分或完整的DOM。@MatthiasGwiozda现在您这么说了,这似乎是一个公平的场景。@simbabque我先看看您的建议,因为我更熟悉Perl
var page = require('webpage').create();
page.open('https://www.superbet.ro/pariuri-sportive', function (status) {
    console.log("status: " + status);
    if (status !== "success") {
      console.log("Unable to access network");
    } else {
    window.setTimeout(function() {
        var fs = require('fs');
        try {
            fs.write("C:/Users/Cristi/Desktop/output.html", page.content, 'w');
        } catch(e) {
            console.log(e);
        }
    }, 10000); // adjust time for every page        }
});