Funkspector

TravisHex.pmDeps Status

Web page inspector for Elixir.

Funkspector is a web scraper that lets you extract data from web pages and XML sitemaps.

Usage

Page Scraping

Simply pass Funkspector the URL of a web page to inspect and it will return its scraped data:

iex> { :ok, data } = Funkspector.page_scrape("http://github.com")

Sitemap Scraping

Funkspector can extract the locations from XML sitemaps, like this:

iex> { :ok, data } = Funkspector.sitemap_scrape("http://validationhell.com/sitemap.xml")

Scraped data

Currently Funkspector returns this scraped data both from pages and sitemaps:

The PageScraper also returns:

The SitemapScraper also returns:

Error response

In case of error, Funkspector will return the original_url and the reason from the server:

case Funkspector.page_scrape("http://example.com") do
{ :ok, data } ->
IO.inspect(data)
{ :error, url, reason } ->
IO.puts "Could not scrape #{url} because of #{reason}"
end

Installation

If available in Hex, the package can be installed as:

  1. Add funkspector to your list of dependencies in mix.exs:

    def deps do [{:funkspector, "~> 0.1"}] end

  2. Ensure funkspector is started before your application:

    def application do [applications: [:funkspector]] end