我正在使用PhantomJS抓取动态内容。我想加载此网站:https://www.instagram.com/explore/tags/fun/,然后点击屏幕底部的按钮"加载更多"加载更多图片,并保存HAR内容。此代码有效:
var page require('webpage').create();
page.open('http://www.milliondollarhomepage.com', function(status) {
setTimeout(function(){
page.sendEvent('click', 240, 210, button='left') }, 200);
setTimeout(function(){
page.render("screensho1.png");
phantom.exit();
}, 5000);
});
点击屏幕上的--link--。但是当我使用我感兴趣的URL时,https://www.instagram.com/explore/tags/fun/使用正确坐标的相同代码将不会单击---按钮---。
非常感谢任何帮助。
答案 0 :(得分:0)
元素的定位通常是相对的,所以我建议避免绝对点击事件;而是使用选择器并在元素上触发click事件:
var page = require('webpage').create();
var fs = require('fs');
var system = require('system');
var url = "https://www.instagram.com/explore/tags/fun/";
page.open(url, function(status) {
console.log("Status: " + status);
if(status === "success") {
setTimeout(
function(){
page.evaluate(
function(){document.querySelector("#react-root > section > main > article > div > div > a").click();}
);
}, 200);
setTimeout(
function(){
path = 'hardcoded.png';
page.render(path, {format: 'png', quality: '100'});
phantom.exit();
}, 1000);
}else{
phantom.exit();
}
});