gpt4 book ai didi

javascript - 如何使用 phantomjs 抓取网站?

转载 作者:行者123 更新时间:2023-12-02 18:58:15 24 4
gpt4 key购买 nike

我正在尝试抓取一个网站并获取 iTunes 促销代码。经过一番实验,我发现使用 JavaScript 控制台可以很轻松地获取代码: http://cl.ly/image/3U1K2a2b1f36/console.png

此后不久,我用 PhantomJS 尝试了以下操作:

 var page = require('webpage').create();
page.open('http://www.air1.com/music/free-songs.aspx', function () {
code = page.evaluate(function() {
__doPostBack('ctl00$cphRight1$itunesPromo$lbGetDownloadCode','');
return document.getElementById('ctl00_cphRight1_itunesPromo_lblItunesCodes').innerText;
});

console.log('Code: ' + code);
phantom.exit();
});

它没有像我想象的那样工作 - code 返回空。

最佳答案

在调用加载弹出窗口和调用获取内部文本之间,弹出窗口可能不在 DOM 中。尝试在中间暂停。

var page = require('webpage').create();
page.open('http://www.air1.com/music/free-songs.aspx', function (status) {

if (status !== 'success') {
console.log('error');
phantom.exit();
return;
}

page.evaluate(function() {
__doPostBack('ctl00$cphRight1$itunesPromo$lbGetDownloadCode','');
});

setTimeout(function() {
var code = page.evaluate(function() {
return document.getElementById('ctl00_cphRight1_itunesPromo_lblItunesCodes').innerText;
});
console.log('code = ' + code);
phantom.exit();
}, 1000);
});

关于javascript - 如何使用 phantomjs 抓取网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15100440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com