Class: Specific::BiliBili
- Inherits:
-
Object
- Object
- Specific::BiliBili
- Defined in:
- lib/spider_rails/specific/bilibili.rb
Instance Method Summary collapse
- #get_res ⇒ Object (also: #get_bilibili_res)
- #goto(url) ⇒ Object
-
#save_handled_data ⇒ Object
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.
- #save_raw_data(name, res, preview) ⇒ Object
Instance Method Details
#get_res ⇒ Object 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_data ⇒ Object
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 |