New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

phantomstream

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

phantomstream

Streaming interface to the PhantomJS headless browser

  • 0.0.1
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
1
Maintainers
1
Weekly downloads
 
Created
Source

phantomstream

Write and automate PhantomJS scripts inside node, using a standard Stream interface.

Getting Started

First off, install the phantomstream module.

npm install phantomstream

Next, create a simple script named "myscript.js".

phantomstream = require("../phantomstream")

// Open up a PhantomJS stream that listens for commands that look like
// "TITLE <url>". Browse to the URL and write the title back via the stream.
var conf = {logger: console}
var ps = phantomstream.open(conf, function(nodestream, phantom, require, global) {

  // This callback executes inside of PhantomJS, not node.  To see the API
  // available to you in PhantomJS, check out their documentation:
  // http://code.google.com/p/phantomjs/wiki/Interface
  var page = require("webpage").create()

  // Listen for the "TITLE <url>" commands via the streaming interface.
  nodestream.on("data", function(data) {
    var matches = /TITLE\s*(.+)/.exec(data)
    if (matches) {
      var url = matches[1]

      // Got a TITLE command, use the PhantomJS page object to browse
      // to that page, get the document title, and write it back to the stream.
      console.info("opening", url)
      page.open(url, function() {
        var title = page.evaluate(function() {
          return document.title
        })
        console.info("sending title =", title)
        nodestream.write(title)
      })
    }
  })

})

// Send an TITLE command to our PhantomJS process and echo the response.
ps.write("TITLE http://www.google.com")
ps.on("data", function(data) {
  console.info("node received:", data.toString())
  process.exit()
})

Run your script with node.

node myscript.js

...you should see output like this:

[phantom-stdout] opening http://www.google.com
[phantom-stdout] sending title = Google
node received: Google

Enjoy! For more ideas on what is possible inside the callback for phantomstream.open(), read the PhantomJS documentation.

Don't forget try out some demos from the examples/ directory :)

Alternatives

If you are looking for higher-level implementations that wrap the PhantomJS API, check these out:

FAQs

Package last updated on 10 Sep 2012

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc