vore 0.2.5-x86_64-windows → 0.3.0-x86_64-windows
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/vore-spider.exe +0 -0
- data/lib/vore/configuration.rb +4 -0
- data/lib/vore/crawler.rb +24 -10
- data/lib/vore/handlers/content_extractor.rb +0 -1
- data/lib/vore/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9c0a3b54d7618f058010a7b420d8085bb26614a2a25a2d13574694d73639faf
|
4
|
+
data.tar.gz: 3b13cf4124744f822c0d3cb969c960d811cb76d39b542531dde19cfe4bc53c25
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 870cc3ea8b2ba8ae56ac0a4435f08baa0504d7f4cb809b06bc052598f0837ea46ab10f4b93b73c859f58be7378a88942d4861ebe5f9ab126de5273ac919c160e
|
7
|
+
data.tar.gz: a6c10f0f3233aec66f9f68c25aba29a87f69fab17070c5aad040b2e08a04e652a289ff6a4143e86dd160f2b411da4d4c9dda9458789144602424ee565a83cc50
|
data/exe/vore-spider.exe
CHANGED
Binary file
|
data/lib/vore/configuration.rb
CHANGED
data/lib/vore/crawler.rb
CHANGED
@@ -8,9 +8,11 @@ module Vore
|
|
8
8
|
PLATFORM = [:cpu, :os].map { |m| Gem::Platform.local.send(m) }.join("-")
|
9
9
|
FILE_SEPERATOR = PLATFORM.include?("windows") ? File::ALT_SEPARATOR : File::SEPARATOR
|
10
10
|
|
11
|
+
attr_reader :output_dir
|
12
|
+
|
11
13
|
# Creates a crawler
|
12
14
|
# denylist: Sets a denylist filter, allows a regexp, string or array of either to be matched.
|
13
|
-
def initialize(denylist: /a^/, sanitization_config: Vole::Configuration::DEFAULT_SANITIZATION_CONFIG)
|
15
|
+
def initialize(denylist: /a^/, sanitization_config: Vole::Configuration::DEFAULT_SANITIZATION_CONFIG, options: Vole::Configuration::DEFAULT_OPTIONS)
|
14
16
|
@denylist_regexp = Regexp.union(denylist)
|
15
17
|
|
16
18
|
@content_extractor = Vole::Handlers::ContentExtractor.new
|
@@ -18,6 +20,7 @@ module Vore
|
|
18
20
|
ext = PLATFORM.include?("windows") ? ".exe" : ""
|
19
21
|
@executable = File.expand_path([__FILE__, "..", "..", "..", "exe", "vore-spider#{ext}"].join(FILE_SEPERATOR))
|
20
22
|
@parent_output_dir = "tmp/vore"
|
23
|
+
@options = options
|
21
24
|
|
22
25
|
return if File.exist?(@executable)
|
23
26
|
|
@@ -26,16 +29,10 @@ module Vore
|
|
26
29
|
end
|
27
30
|
|
28
31
|
def scrape_each_page(website, &block)
|
29
|
-
output_dir = "#{@parent_output_dir}/#{website.gsub(/[^a-zA-Z0-9]/, "_").squeeze("_")}"
|
32
|
+
@output_dir = "#{@parent_output_dir}/#{website.gsub(/[^a-zA-Z0-9]/, "_").squeeze("_")}"
|
30
33
|
Vore.logger.info("Vore started crawling #{website}, outputting to #{output_dir}")
|
31
34
|
|
32
|
-
output =
|
33
|
-
--user-agent #{user_agent} \
|
34
|
-
--delay 3500 \
|
35
|
-
--url #{website} \
|
36
|
-
download \
|
37
|
-
-t \
|
38
|
-
#{output_dir})
|
35
|
+
output = run_command(website, delay: @options[:delay])
|
39
36
|
|
40
37
|
Vore.logger.info("Vore finished crawling #{website}: #{output}")
|
41
38
|
|
@@ -51,6 +48,7 @@ module Vore
|
|
51
48
|
results[:pages_visited] += 1
|
52
49
|
|
53
50
|
html_file = File.read(path).force_encoding("UTF-8")
|
51
|
+
rewritten_html_file = ""
|
54
52
|
|
55
53
|
if html_file.empty?
|
56
54
|
results[:pages_unprocessed] += 1
|
@@ -58,7 +56,13 @@ module Vore
|
|
58
56
|
next
|
59
57
|
end
|
60
58
|
|
61
|
-
|
59
|
+
begin
|
60
|
+
rewritten_html_file = @selma.rewrite(html_file)
|
61
|
+
rescue StandardError => e
|
62
|
+
Vore.logger.warn("Error rewriting #{path}: #{e}")
|
63
|
+
results[:pages_unprocessed] += 1
|
64
|
+
next
|
65
|
+
end
|
62
66
|
|
63
67
|
# drops the first 3 parts of the path, which are "tmp", "vore", and the site name
|
64
68
|
url_path = path.split(FILE_SEPERATOR)[3..].join("/")
|
@@ -83,6 +87,16 @@ module Vore
|
|
83
87
|
# crawl_site(site)
|
84
88
|
# end
|
85
89
|
|
90
|
+
def run_command(website, delay: 3500)
|
91
|
+
%x(#{@executable} \
|
92
|
+
--user-agent #{user_agent} \
|
93
|
+
--delay #{delay} \
|
94
|
+
--url #{website} \
|
95
|
+
download \
|
96
|
+
-t \
|
97
|
+
#{@output_dir})
|
98
|
+
end
|
99
|
+
|
86
100
|
def user_agent
|
87
101
|
"'Mozilla/5.0 (compatible; Vore/#{Vore::VERSION}; +https://github.com/gjtorikian/vore)'"
|
88
102
|
end
|
data/lib/vore/version.rb
CHANGED