instagram_scraper 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/instagram_scraper.rb +33 -0
- data/lib/instagram_user.rb +10 -0
- metadata +46 -0
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: []
|