instascrap 0.0.5

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.
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: []