Skip to content

ContentMine/thresher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thresher

NPM version license MIT Downloads Build Status Dependency Status Coverage Status Code Climate

Thresher is a library for modern web scraping in Node.js. It is unique in that:

  • it is headless: URLs are rendered in a GUI-less browser, meaning the version of the HTML you scrape is the same one visitors would see on their screen
  • it is declarative: Scrapers are defined in separate JSON files. This means no programming required! It also means any other software supporting the same format could use the same scraper definitions.

Thresher was developed as part of the ContentMine stack for mining the academic literature.

Installation

npm install --save thresher

Usage

See quickscrape for a thorough example of thresher in action.

Contributing

We are not yet accepting contributions, if you'd like to help please drop me an email (richard@contentmine.org) and I'll let you know when we're ready for that.

Release History

  • 0.0.1 - fork thresher from quickscrape
  • 0.0.2 - solve the dependency problem by exposing binaries from installed packages
  • 0.0.3 - fix rendering issue on some websites
  • 0.0.4 - automatic scraper selection
  • 0.0.5 - fix bug in ScraperBox for multiple matches
  • 0.0.6 - refactor, headless rendering optional, multiple URLs, automatic scraper selection
  • 0.0.7 - support scraperJSON v0.0.2: add regex capability, remove all logging, move to event-based design
  • 0.0.8 - resolve URLs with head-follow requests; refactor to have a Scraper class; supply cookies to downloader; use jsdom-lite to forestall some of the worst installation issues (thanks to @darobin).
  • 0.0.9 - fix broken release
  • 0.1.0 - complete rewrite to support scraperJSON v0.1
  • 0.1.1 - fixes for regexes, definition checking, cleanup logging
  • 0.1.2 - fix bug in resolving relative paths, update dependencies, bring xpath dependency into local control to avoid a namespace-related regression in the main fork, and fix follow-ons.
  • 0.1.3 - fix broken release where a dependency was left out of package.json.

License

Copyright (c) 2014 Shuttleworth Foundation. Licensed under the MIT license.

About

Headless scraperJSON scraping for Node.js

Resources

License

Stars

Watchers

Forks

Packages

No packages published