instascrap 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/bin/instascrap +18 -0
  3. data/lib/instascrap.rb +72 -0
  4. metadata +106 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4a2ad6e5e037ea665056e5d8a9ba88cde54ff75c
4
+ data.tar.gz: 03150dd7117b32b46e12a798ab891cc4bfe475bd
5
+ SHA512:
6
+ metadata.gz: f8b4b6fa4a6c2fa88fb0f56ed7206f75433568064ce90001fde10b9c39537ea61b7bc8cb709fe8de9c05947afd8d0335caca3170ad4592c40b070d8381e2b81c
7
+ data.tar.gz: 1bf191222fb3daf293a8184ad2cd7210662eb52def2505a9299846684f55b3276adb3d3677eb7a9d32295f1289762f92c38e15b7897747fae52aa6277cdf43ba
data/bin/instascrap ADDED
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'instascrap'
4
+ instascrap = Instagram.new(ARGV[0])
5
+ puts "What you want? img or mp4 \n"
6
+ STDOUT.flush
7
+ val = gets.chomp
8
+ if val == "img"
9
+ puts "Please push image link"
10
+ $url= gets.chomp
11
+ instascrap.download_img
12
+ elsif val == "mp4"
13
+ puts "Please push video link"
14
+ $url = gets.chomp
15
+ instascrap.download_videos
16
+ else
17
+ puts "Please push correct link"
18
+ end
data/lib/instascrap.rb ADDED
@@ -0,0 +1,72 @@
1
+ require 'open-uri'
2
+ require 'watir'
3
+ require 'nokogiri'
4
+ require 'fileutils'
5
+ require 'mechanize'
6
+
7
+ class Instagram
8
+ def initialize(url = nil)
9
+ $url = url
10
+ @mechanize = Mechanize.new
11
+ end
12
+
13
+ def download_img
14
+ unless $url.nil?
15
+ puts "download from #{$url}"
16
+ puts "========== DOWNLOADING IMAGE =========="
17
+
18
+ browser = Watir::Browser.new(:phantomjs)
19
+ browser.goto($url)
20
+
21
+ # parsing with nokogiri
22
+ document = Nokogiri::HTML(browser.html)
23
+ link = document.search("div._jjzlb img")[0]["src"]
24
+ photo = browser.goto(link)
25
+ FileUtils.mkdir_p 'ig_photos'
26
+ FileUtils.cd 'ig_photos'
27
+ pwd = FileUtils.pwd
28
+
29
+ getting_photo = @mechanize.get photo
30
+ unless File.exists?("#{pwd}/#{photo.to_s.split(".jpg").first + ".jpg" }")
31
+ begin
32
+ getting_photo.save!
33
+ rescue
34
+ end
35
+ else
36
+ puts "file already exist"
37
+ end
38
+ end
39
+
40
+ puts "images: #{pwd}/#{getting_photo.filename}/"
41
+ end
42
+
43
+ def download_videos
44
+ unless $url.nil?
45
+ puts "download from #{$url}"
46
+ puts "========== DOWNLOADING VIDEO =========="
47
+
48
+ browser = Watir::Browser.new(:phantomjs)
49
+ browser.goto($url)
50
+
51
+ # parsing with nokogiri
52
+ document = Nokogiri::HTML(browser.html)
53
+ link = document.search("video._c8hkj")[0]["src"]
54
+ video = browser.goto(link)
55
+ FileUtils.mkdir_p 'ig_movies'
56
+ FileUtils.cd 'ig_movies'
57
+ pwd = FileUtils.pwd
58
+
59
+ getting_video = @mechanize.get video
60
+ unless File.exists?("#{pwd}/#{video.to_s.split(".mp4").first + ".mp4" }")
61
+ begin
62
+ getting_video.save!
63
+ rescue
64
+ end
65
+ else
66
+ puts "file already exist"
67
+ end
68
+ end
69
+
70
+ puts "videos: #{pwd}/#{getting_video.filename}"
71
+ end
72
+ end
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: instascrap
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
+ platform: ruby
6
+ authors:
7
+ - Cihan KURSUN
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-07-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: nokogiri
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.8'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.8.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.8'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.8.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: mechanize
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.7'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 2.7.5
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '2.7'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 2.7.5
53
+ - !ruby/object:Gem::Dependency
54
+ name: watir
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '6.1'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 6.2.1
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '6.1'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 6.2.1
73
+ description: instascrap gem allows to download image and videos
74
+ email: cihankursun95@gmail.com
75
+ executables:
76
+ - instascrap
77
+ extensions: []
78
+ extra_rdoc_files: []
79
+ files:
80
+ - bin/instascrap
81
+ - lib/instascrap.rb
82
+ homepage: http://rubygems.org/gems/instascrap
83
+ licenses:
84
+ - MIT
85
+ metadata: {}
86
+ post_install_message:
87
+ rdoc_options: []
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ requirements: []
101
+ rubyforge_project:
102
+ rubygems_version: 2.6.10
103
+ signing_key:
104
+ specification_version: 4
105
+ summary: instascrap
106
+ test_files: []