【问题标题】:PhantomJS and jquery screen scraping - no outputPhantomJS 和 jquery 屏幕抓取 - 无输出
【发布时间】:2012-09-05 06:55:30
【问题描述】:

我正在尝试使用 phantom js 进行屏幕抓取。

我从这个站点复制了一些 phantomjs 代码:http://snippets.aktagon.com/snippets/534-How-to-scrape-web-pages-with-PhantomJS-and-jQuery

从该脚本开始,我已修改为:http://jsfiddle.net/dqfTa/(参见 javascript)

我的目标是将网站的价格(即“.price”标签的内部 html)收集到一个 javascript 数组中。现在我正在尝试将它们 console.log() 到我的屏幕上。

我正在通过 ubuntu 12.04 控制台运行 phantomjs v1.6 和 jquery v1.8。我将用户代理设置为“iPhone”。

这是我的输出:

nwo@aws-chaos-us-w-1:~/sandbox$ phantomjs  usingjqueryandphantom.js
hello
success
============================================
Step "0"
============================================

它永远不会超过第 0 步。看看我的代码,我做了一个console.log("h1");,但它不会输出它。我在这里做错了什么?

【问题讨论】:

  • 您是否尝试过使用--remote-debugger-port=SOMEPORT 调试它,然后转到http://localhost:SOMEPORT
  • 您是否在要抓取的页面上下文中运行 JavaScript?它不会在页面范围之外做任何事情。

标签: phantomjs


【解决方案1】:

Phantomjs 要求您挂钩来自其页面上下文的控制台输出。来自API reference

当出现 JavaScript 控制台消息时调用此回调 网页。回调最多可以接受三个参数: 消息、行号和源标识符的字符串。

默认情况下,不会显示来自网页的控制台消息。 使用这个回调是一种典型的重定向方式。

page.onConsoleMessage = function(msg) {
    console.log("This message came from the webpage: "+ msg);
};

【讨论】:

    猜你喜欢
    • 2014-05-22
    • 2016-09-23
    • 2011-02-20
    • 2011-01-15
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多