Class: Specific::BiliBili

Inherits:
Object
  • Object
show all
Defined in:
lib/spider_rails/specific/bilibili.rb

Instance Method Summary collapse

Instance Method Details

#get_resObject Also known as: get_bilibili_res



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/spider_rails/specific/bilibili.rb', line 4

def get_res
  animations = Hash.new
  #browser for get page number
  @b1 = goto("http://www.bilibili.tv/video/part-twoelement-1.html")
  @b1.link(class: 'endPage').click
  page_num = @b1.url[/\b\-\d+/].sub(/\-/, '')
  @b1.close

  #browser for get resources
  browser2 = Watir::Browser.new :chrome
  for i in 1..page_num.to_i
    #for i in 1..1
    browser2.goto "http://www.bilibili.tv/video/part-twoelement-#{i}.html"
    html = Nokogiri::HTML.parse(browser2.html)

    get_content(html, 'li.l2') do |li|
      get_content(li, 'a.title') { |name| @name = name.content }

      get_content(li, 'a.preview') { |a| @res = a['href'] }
      get_content(li, 'a.preview img') { |img| @preview = img['src'] }

      save_raw_data @name, @res, @preview
    end
  end

  browser2.close
  animations
end

#goto(url) ⇒ Object



36
37
38
39
40
# File 'lib/spider_rails/specific/bilibili.rb', line 36

def goto url
  browser1 = Watir::Browser.new :chrome
  browser1.goto url
  browser1
end

#save_handled_dataObject

deprecated def save_record(model, *args)

if model.find_by_name(name) && !name.nil?
  id = model.find_by_name(name).id
  model.update(id, name: name, res: res, preview: preview)
else
  model.create(name: name, res: res, preview: preview)
end

end



62
63
64
65
66
# File 'lib/spider_rails/specific/bilibili.rb', line 62

def save_handled_data
  AniRaw.all.each do |record|
    save_record AniFin, name: record.name, preview: record.preview, res: record.res
  end
end

#save_raw_data(name, res, preview) ⇒ Object



42
43
44
45
46
47
48
49
50
# File 'lib/spider_rails/specific/bilibili.rb', line 42

def save_raw_data(name, res, preview)
  #anis.each do |preview, name|
  #  unless AniRaw.where(preview: preview).exists?
  #    AniRaw.create!(preview: preview, name: name)
  #  end
  #end

  save_record(AniRaw, name: name, preview: preview, res: res)
end