InstaScraper

Scrapes Instagram

Installation

Add this line to your application's Gemfile:

gem 'insta_scraper'

And then execute:

$ bundle

Or install it yourself as:

$ gem install insta_scraper

Usage

Subclasses of InstaScraper::HTML are scraping html endpoints. Subclasses of InstaScraper::JSON are scraping json endpoints.

  • InstaScraper::HTML::Account
 = InstaScraper::HTML::Account.new('barna.kovacs.codes')

.data #=> #<Hashie::Mash...
.data.deep_find('followed_by').fetch('count') #=> 4
  • InstaScraper::HTML::Media
media = InstaScraper::HTML::Media.new('BGFVAPPIaBQ')

media.data #=> #<Hashie::Mash...
media.data.deep_find('comments').fetch('count') #=> 1892
  • InstaScraper::JSON::Account
 = InstaScraper::JSON::Account.new('barna.kovacs.codes')

.data #=> #<Hashie::Mash...
.data.deep_find('followed_by').fetch('count') #=> 4
  • InstaScraper::JSON::Media
media = InstaScraper::JSON::Media.new('BGFVAPPIaBQ')

media.data #=> #<Hashie::Mash...
media.data.deep_find('comments').fetch('count') #=> 1892
  • InstaScraper::JSON::AccountMedia
 = InstaScraper::JSON::AccountMedia.new('barna.kovacs.codes')
# or with params (ex. max_id for offset)
# account_media = InstaScraper::JSON::AccountMedia.new('barna.kovacs.codes', max_id: '1261002980537663713_3072962559')

.data #=> #<Hashie::Mash...
.data.fetch('items') #=> [...]
  • InstaScraper::JSON::MediaComment (deprecated, use MediaCommentStream)
media_comment = InstaScraper::JSON::MediaComment.new('BLeceL9BZNT', 17843235427151917, 20)
# shortcode, last_comment_id, per_page

media_comment.data #=> #<Hashie::Mash...
media_comment.data['comments']['nodes'] #=> [#<Hashie::Mash created_at=1476385792.0 id="17843206063151917" text="Now we can get the golden ship!"
  • InstaScraper::JSON::MediaCommentStream
media_comments = InstaScraper::JSON::MediaCommentStream.new('BLeceL9BZNT', options = {})
# optional_hash = { last_comment_id: '17845167841178842', max_comments: 200, per_page: 20}

media_comments.data #=> #<Hashie::Mash...
media_comments.data['comments'] #=> [#<Hashie::Mash created_at=1476385792.0 id="17843206063151917" text="Now we can get the golden ship!"

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/preciz/insta_scraper.

Ferenc Fekete Extended gem with comment crawler class.

License

The gem is available as open source under the terms of the MIT License.