spider_rails 4.0.0 → 4.0.1
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 +4 -4
- data/Rakefile +2 -13
- data/lib/spider_rails/common.rb +2 -0
- data/lib/spider_rails/ji_ying.rb +37 -19
- data/lib/spider_rails/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45eb0723b5f87fe4d47fe672b0731b2b023a6c9c
|
4
|
+
data.tar.gz: 7c08ae9a4ba6499bcda5b4c01038a0695e378d39
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61551419495a9dd7cd11cdb81a81e8a79fc5d0dd8e840ac7dbc3eb292979911e5f626e933c1a9f704cba42cd14933a3e5f756aab4f1c40ddb9cbeb96dc435f61
|
7
|
+
data.tar.gz: aa82ef9627e5661cdb32e4face134711249599dcde520238982469aa089cbbfb6d0fcecf13a3bf7f02556f905244b20e34b9f96836eed55dda31f15304e0b2b8
|
data/Rakefile
CHANGED
@@ -14,19 +14,8 @@ RDoc::Task.new(:rdoc) do |rdoc|
|
|
14
14
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
15
|
end
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
17
|
Bundler::GemHelper.install_tasks
|
21
18
|
|
22
|
-
require '
|
23
|
-
|
24
|
-
Rake::TestTask.new(:test) do |t|
|
25
|
-
t.libs << 'lib'
|
26
|
-
t.libs << 'test'
|
27
|
-
t.pattern = 'test/**/*_test.rb'
|
28
|
-
t.verbose = false
|
29
|
-
end
|
30
|
-
|
19
|
+
require 'rspec/core/rake_task'
|
31
20
|
|
32
|
-
|
21
|
+
RSpec::Core::RakeTask.new(:spec)
|
data/lib/spider_rails/common.rb
CHANGED
@@ -43,6 +43,7 @@ module Spider
|
|
43
43
|
class << self
|
44
44
|
def open_browser url
|
45
45
|
@browser = Watir::Browser.new :chrome, switches: %w( --user-data-dir=/home/zxr/.config/google-chrome)
|
46
|
+
#@browser = Watir::Browser.new :chrome
|
46
47
|
@browser.goto url
|
47
48
|
@browser
|
48
49
|
end
|
@@ -58,3 +59,4 @@ module Spider
|
|
58
59
|
end
|
59
60
|
|
60
61
|
|
62
|
+
|
data/lib/spider_rails/ji_ying.rb
CHANGED
@@ -1,11 +1,19 @@
|
|
1
1
|
module Spider
|
2
2
|
class JiYing < Common
|
3
|
-
attr_accessor :ani, :anis
|
3
|
+
attr_accessor :ani, :anis, :page
|
4
4
|
|
5
5
|
def initialize page
|
6
6
|
@ani = Hash.new
|
7
7
|
@anis = Array.new
|
8
8
|
@page = page
|
9
|
+
@base_url = page.url.gsub!(/\b\d(.html)?/, '')
|
10
|
+
|
11
|
+
if @base_url.include?('search')
|
12
|
+
@mode = 'search'
|
13
|
+
else
|
14
|
+
@mode = 'normal'
|
15
|
+
end
|
16
|
+
|
9
17
|
end
|
10
18
|
|
11
19
|
def full_site
|
@@ -20,40 +28,50 @@ module Spider
|
|
20
28
|
end
|
21
29
|
|
22
30
|
def final_page
|
23
|
-
@
|
31
|
+
if @mode == 'search'
|
32
|
+
fp = @page.element(css: '.title h2 a').text[/\(.+\)/].gsub!(/\(|\)/, '').to_i/100 + 1
|
33
|
+
else
|
34
|
+
fp = @page.element(css: 'a.pager-last').text.to_i
|
35
|
+
end
|
36
|
+
fp
|
24
37
|
end
|
25
38
|
|
26
39
|
def full_page page_num
|
27
|
-
@
|
28
|
-
|
29
|
-
|
30
|
-
|
40
|
+
case @mode
|
41
|
+
when 'search'
|
42
|
+
@page.goto "#{@base_url}#{page_num}"
|
43
|
+
html = Nokogiri::HTML.parse @page.html
|
44
|
+
html.css('.ltext').each do |td|
|
45
|
+
sing le(td)
|
46
|
+
end
|
47
|
+
when 'normal'
|
48
|
+
@page.goto "#{@base_url}#{page_num}.html"
|
31
49
|
end
|
32
50
|
end
|
33
51
|
|
34
|
-
def single element
|
52
|
+
def single element, &block
|
35
53
|
get(element)
|
36
|
-
@anis
|
54
|
+
@anis
|
37
55
|
end
|
38
56
|
|
39
57
|
def get(element)
|
40
58
|
element.css('a.quick-down').each do |a|
|
41
|
-
@ani[:torrent] = a['href']
|
42
|
-
end
|
43
|
-
element.css('a.quick-down+a').each do |a|
|
44
|
-
@ani[:title] = a.content
|
59
|
+
@ani[:torrent] = 'http://bt.ktxp.com' + a['href']
|
45
60
|
end
|
61
|
+
@ani[:title],
|
62
|
+
@ani[:size],
|
63
|
+
@ani[:finish] = get_content(element, 'a.quick-down+a', 'td.ltext+td', 'td.ltext+td+td+td+td')
|
46
64
|
@ani
|
47
65
|
end
|
48
66
|
|
49
|
-
def
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
67
|
+
def get_content(element, *selectors)
|
68
|
+
tds = Array.new
|
69
|
+
selectors.each do |selector|
|
70
|
+
element.css(selector).each do |td|
|
71
|
+
tds << td.text
|
72
|
+
end
|
54
73
|
end
|
55
|
-
|
56
|
-
@ani if @ani
|
74
|
+
tds
|
57
75
|
end
|
58
76
|
end
|
59
77
|
end
|
data/lib/spider_rails/version.rb
CHANGED