Pagesource仅使用phantomjs显示html标记

时间:2019-05-13 14:36:12

标签: php phantomjs

我想使用PHP抓取一个网站,但是当我进入该网站并尝试获取页面源代码时,出现此错误:

<html><title>You are being redirected...</title>
<noscript>Javascript is required. Please enable javascript before you are allowed to see this page.</noscript>

因此,我尝试使用幻影js获取页面源:

var page = require('webpage').create();

page.open('https://www.mywebsite.com/', function(){
    console.log(page.content);
    phantom.exit();
});

但是使用幻像,我得到了这个结果:

<html><head></head><body></body></html>

我是否使用幻像犯了错误?还是无法废弃此网站?

我可以尝试通过哪种方式从页面获取数据?

1 个答案:

答案 0 :(得分:0)

站点具有javascript重定向功能,但脚本在重定向完成之前尝试获取HTML,但未获得任何结果。需要等待一段时间-这样的事件onLoadFinished之后,页面将被构建或获取内容。尝试下面的代码,它应该可以正常工作。

var page = require("webpage").create();
var homePage = "https://www.[real site name].com/";
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.2062'

page.open(homePage, function(status) {
    page.onLoadFinished = function(status){
        console.log(page.content);
        phantom.exit();
    };
});