Webben skrapning med Ruby (1 / 1 steg)
Steg 1: Detaljerad information och exempel
Nu ute där människor kommer att försöka berätta, behöver du den X eller Y pärlan (som Nekogiri eller Mechanize) fortfarande för de flesta fall behövs inte.
En normal ruby installation och en texteditor (Notepad ++ eller vad du vill).
Jag använder RubyMine, det är inte gratis, men jag gillar det, det känns och ser ut som Visual Studio.
Nu till exempel. Jag spelar ett spel kallas Warframe (www.warframe.com) och spelet har ett system som erbjuder en tid uppdrag med fina belöningar, men uppdragen är tiden begränsad och visas slumpmässigt. Den officiella webbplatsen har ett twitter-konto som presenterar alert uppdragen och det finns några fan gjort webbplatser också, ännu en android applikation. För windows måste du vara inloggad med spelet eller hålla ett webbläsarfönster öppna med twitter eller en av fansidor gjorde, men det finns inget program. Fram till nu :D
Jag kommer för att använda en av fläkten gjort platser för att få de uppgifter som behövs. (http://deathsnacks.com/wf/index.html)
nu för kod (http://pastebin.com/153FFXJf) kommenterade och syntax belyst.
---------
# http://deathsnacks.com/wf/index.html
kräver "open-uri"
#start ny tråd
t = Thread.new vill
samtidigt sant
Conn = open('http://deathsnacks.com/wf/index.html').read
table_data = conn.scan / /
table_data_refined =]
table_data.each {|data|
data.gsub! (/ <. +? > /, '')
# lägga till blanksteg efter pris
data.gsub! ('0cr', '0cr')
table_data_refined << uppgifter
}
sätter "
sätter "Warframe varningar av Neumann Gregor"
$i = 0
table_data_refined.each |looped|
om (table_data_refined [$i] [0] = ~ /[[:digit:]]/)
#insert utrymmen mellan gemener och versaler bokstäverna i sträng
sätter "+ (table_data_refined [$i]).to_s.gsub (/ (? < = [a-z])(?=[A-Z]) /, '")
slutet
$i += 1
slutet
sova 10
Gem.win_platform?? (system "cls"): (system "clear")
slutet
slutet
får
t.kill
---------
Som ni ser, vi bara läsa alla data, HTML-sidan, sedan leta efter < li >< /li > Taggar och få det i en matris. sedan förfina vi som genom att söka efter poster som börjar med nummer och vi sedan remsor HTML-taggar och lägga till vissa utrymmen för en bättre behandling, vi upprepar som var 10 sekunder tills vi slog in, om du gör att det avslutas.
Jag har lagt till källkoden som en .rb-fil och en ocra genereras exe för personer som inte har ruby installerat och vill inte installera den.