instagram_scraper 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a3d70c5f9ce199452babdceb380593e22ad86456
4
+ data.tar.gz: a087a5d3e973a0b254b9d210fea035c179b95896
5
+ SHA512:
6
+ metadata.gz: c55bf19cf498fd6d57ddb5935291bfa74908dbd60cd5bcead37e8f607417beaeb9066e70aa73944019c5972c5a4fe70f0e44e754660d5f73e386682b89889de1
7
+ data.tar.gz: 07d7eb31cab49d0dc40e310a3ef0b5d5b290547922c7768fe719e5dd1c3e5cecb8517e7f8a7b894b0abf3331dc282732e92dcb80473c64f1de76c63c3c7baa2e
@@ -0,0 +1,33 @@
1
+ class InstagramScraper
2
+ #code
3
+ def self.get_user_basic_json(name)
4
+ info_json = load_json("https://www.instagram.com/web/search/topsearch/?query=#{name}")
5
+ first_user = info_json['users'][0] unless info_json['users'].nil? || info_json['users'].empty?
6
+ user = first_user['user'] unless first_user.nil? || first_user['username'] == name
7
+ end
8
+
9
+ def self.load_json(url)
10
+ #code
11
+ JSON.load(open(url))
12
+ end
13
+
14
+ def self.load_media_json(name)
15
+ #code
16
+ media_json = load_json("https://www.instagram.com/#{name}/media")
17
+ end
18
+
19
+ def self.get(name)
20
+ basic_json = get_user_basic_json name
21
+ media_json = load_media_json name
22
+ @user = InstagramUser.new
23
+ @user.username = basic_json['username']
24
+ @user.follower_count = basic_json['follower_count']
25
+ @user.profile_pic_url = basic_json['profile_pic_url']
26
+ @user.is_private = basic_json['is_private']
27
+ @user.media_json = media_json
28
+ @user
29
+ end
30
+ end
31
+
32
+ require 'open-uri'
33
+ require "json"
@@ -0,0 +1,10 @@
1
+ class InstagramUser
2
+ attr_accessor :username, :follower_count, :is_private, :profile_pic_url, :media_json
3
+ def avg_likes
4
+ #code
5
+ items = @media_json['items']
6
+ total = items.length
7
+ sum_likes = items.inject(0){|s, post| s + post['likes']['count']}
8
+ @avg = sum_likes/total
9
+ end
10
+ end
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: instagram_scraper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - samwalker
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-02-03 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A instagram scraper to get user instagram data thought public api (search
14
+ and media)
15
+ email: samwalker505@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/instagram_scraper.rb
21
+ - lib/instagram_user.rb
22
+ homepage: http://samwalker505.github.io/
23
+ licenses:
24
+ - MIT
25
+ metadata: {}
26
+ post_install_message:
27
+ rdoc_options: []
28
+ require_paths:
29
+ - lib
30
+ required_ruby_version: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 2.5.1
43
+ signing_key:
44
+ specification_version: 4
45
+ summary: A instagram scraper to get user instagram data
46
+ test_files: []