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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 63f087307609e302b593faa387fd969c7243632e
4
- data.tar.gz: 93b454e79515ce8c2a839b553305a897be598927
3
+ metadata.gz: 45eb0723b5f87fe4d47fe672b0731b2b023a6c9c
4
+ data.tar.gz: 7c08ae9a4ba6499bcda5b4c01038a0695e378d39
5
5
  SHA512:
6
- metadata.gz: 4b66c929ac8de53ae3ad6098e5c84de7d8fecee9069f856d4f0436f24b7f89f198b832945ede4f607f5d75cd15cfe804422376fc6e319f5bee7a22bc872cc387
7
- data.tar.gz: 0a3fe1a71289756f22760cdd2febee34861cdcc0518f3cae2d4ed2258543fd82b3219225ab48e9dd0558852bffd8b53ea4b6eb0bfeeb5da3cb3e43759f928325
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 'rake/testtask'
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
- task default: :test
21
+ RSpec::Core::RakeTask.new(:spec)
@@ -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
+
@@ -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
- @page.element(css: '.title h2 a').text[/\(.+\)/].gsub!(/\(|\)/, '').to_i/100 + 1
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
- @page.goto "http://bt.ktxp.com/search.php?keyword=%E8%AF%B8%E7%A5%9E&sort_id=28&field=title&order=&page=#{page_num}"
28
- html = Nokogiri::HTML.parse @page.html
29
- html.css('.ltext').each do |td|
30
- single(td)
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 << single_filter
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 single_filter
50
- if @ani[:title][/外挂/u]
51
- @ani[:torrent].prepend('http://bt.ktxp.com') if @ani[:torrent]
52
- else
53
- @ani[:title] = nil
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
@@ -1,3 +1,3 @@
1
1
  module SpiderRails
2
- VERSION = "4.0.0"
2
+ VERSION = "4.0.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spider_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - zhuxingruo