我正在尝试使用Phantom.JS抓取页面http://www.buddytv.com/trivia/game-of-thrones-trivia.aspx
以下是代码:
search = page.evaluate(function() {
return '<div class="question">' + $('#id60questionText').text() + '</div>';
});
results = page.evaluate(function() {
return $('#id78questionRegion').html();
});
answer = page.evaluate(function() {
$('a[href="javascript:___gid_10(0)"]').trigger("click");
return $('body').html();
});
前两部分没有问题,但最后一部分没有问题。基本上,我想点击第一个答案,然后返回完成后出现的页面内容(并选择答案,但在网站上显得过快,我无法检查它所在的选择器)。无论如何,返回的html不包含答案,我猜我没有正确触发点击。有什么建议吗?
非常感谢,你们都很棒,
答案 0 :(得分:0)
如果查看trigger
的jQuery源代码,可以看到
elem[type]();
但不幸的是HTMLElement.click
是非标准的,在PhantomJS中不可用。还有一个原因就是不使用jQuery。见PhantomJS; click an element。
PhantomJS没有打印错误信息吗?我希望看到像elem.click is not a function
这样的东西。否则,您可以尝试将其包装在try / catch块中并console.out
发生错误。如果仍然无法解决您的问题,您可以远程调试;谷歌为“phantomjs远程调试”。