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.
- checksums.yaml +7 -0
- data/bin/instascrap +18 -0
- data/lib/instascrap.rb +72 -0
- 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: []
|