Dienstag, 9. Februar 2010

Webroboter

Webroboter a la ct 


Ruby und mechanics



Install ruby mit gems und mechanics:

http://rubyinstaller.org, ruby dem Path hinzufügen lassen, 
prüfen mit ruby -v

gem install mechanize



###MyGoogleSearch.rb###
require 'rubygems'
require 'mechanize'

agent = WWW::Mechanize.new
puts ".........Mapsergebnisse................"
agent.page.forms.first.as_q = 'pfandleihhaus'
agent.page.forms.first.submit
Maps_links = agent.page.search('h4[@class="r"]/a[@class="l"]')
#links.each{|link| puts "#{link.text} (#{link['href']})"}
Maps_links.each_with_index{|link, index| puts "#{index+1} #{link.text} (#{link['href']})"}


####MyGoogleSearch2.rb####
require 'rubygems'
require 'mechanize'

suchbegriff= "leihhaus berlin"
agent = WWW::Mechanize.new


puts "\n"+suchbegriff
#puts ".........Mapsergebnisse pfandleihhaus................"
agent.page.forms.first.as_q = suchbegriff
agent.page.forms.first.submit
Maps_links = agent.page.search('h4[@class="r"]/a[@class="l"]')
#links.each{|link| puts "#{link.text} (#{link['href']})"}
Maps_links.each_with_index{|link, index| 
if link.text.index('Exchange') then
puts "Position #{index+1} #{link.text} (#{link['href']})"
      exit
else
#puts "#{index+1} #{link.text} (#{link['href']})"
end
}

#puts ".........Suchergebnisse pfandleihhaus................"
agent.get('http://www.google.de/search?hl=de', {"num"=>"100","start"=>"0", "q"=>suchbegriff})
links = agent.page.search('h3[@class="r"]/a[@class="l"]')
links.each_with_index{|link, index| 
if link.text.index('Exchange') then
puts "Position #{index+1+Maps_links.length} #{link.text} (#{link['href']})"
      exit
else
#puts "Position #{index+1}: #{link.text} (#{link['href']})"
end
}


#puts ".........Suchergebnisse pfandleihhaus................"
agent.get('http://www.google.de/search?hl=de', {"num"=>"100","start"=>"100", "q"=>suchbegriff})
links = agent.page.search('h3[@class="r"]/a[@class="l"]')
links.each_with_index{|link, index| 
if link.text.index('Exchange') then
puts "Position #{index+1+Maps_links.length+100} #{link.text} (#{link['href']})"
exit      
#break
else
#puts "#{index+1} #{link.text} (#{link['href']})"
end
}

###MyGoogleSearch1.rb####
require 'rubygems'
require 'mechanize'

agent = WWW::Mechanize.new

suchbegriffe = [
'pfandleihhaus', 'pfandhaus', 'leihhaus', 'pfandkredit', 
"pfandleihhaus berlin", "pfandhaus berlin", "leihhaus berlin", "pfandkredit berlin", 
'geldwechsel', 'wechselstube', "money gramm",
"geldwechsel berlin", "wechselstube berlin", "money gramm berlin",
'goldverkauf', 'goldankauf', 'goldmuenzen', 'kruegerrand',
"goldverkauf berlin", "goldankauf berlin", "goldmuenzen berlin", 
"usd wechselkurs",  'wechselkurse']


suchbegriffe.each do |suchbegriff|

found=false

puts "\n"+suchbegriff
#puts ".........Mapsergebnisse pfandleihhaus................"
agent.page.forms.first.as_q = suchbegriff
agent.page.forms.first.submit
res = agent.page.search('h4[@class="r"]/a[@class="l"]')
#links.each{|link| puts "#{link.text} (#{link['href']})"}
res.each_with_index{|link, index| 
if link.text.index('Exchange AG') then
puts "Position #{index+1} #{link.text} (#{link['href']})"
found=true
      break
else
#puts "#{index+1} #{link.text} (#{link['href']})"
end
}


if !found then
#puts ".........Suchergebnisse pfandleihhaus................"
agent.get('http://www.google.de/search?hl=de', {"num"=>"100","start"=>"0", "q"=>suchbegriff})
links = agent.page.search('h3[@class="r"]/a[@class="l"]')
links.each_with_index{|link, index| 
if link.text.index('Exchange AG') then
puts "Position #{index+1+res.length} #{link.text} (#{link['href']})"
found=true
      break
else
#puts "Position #{index+1}: #{link.text} (#{link['href']})"
end
}
end

if !found then
#puts ".........Suchergebnisse pfandleihhaus................"
agent.get('http://www.google.de/search?hl=de', {"num"=>"100","start"=>"100", "q"=>suchbegriff})
links = agent.page.search('h3[@class="r"]/a[@class="l"]')
links.each_with_index{|link, index| 
if link.text.index('Exchange AG') then
puts "Position #{index+1+res.length+100} #{link.text} (#{link['href']})"
found=true
break      
#break
else
#puts "#{index+1} #{link.text} (#{link['href']})"
end
}
end

if !found then
#puts ".........Suchergebnisse pfandleihhaus................"
agent.get('http://www.google.de/search?hl=de', {"num"=>"100","start"=>"200", "q"=>suchbegriff})
links = agent.page.search('h3[@class="r"]/a[@class="l"]')
links.each_with_index{|link, index| 
if link.text.index('Exchange AG') then
puts "Position #{index+1+res.length+200} #{link.text} (#{link['href']})"
found=true
break      
#break
else
#puts "#{index+1} #{link.text} (#{link['href']})"
end
}
end

if !found then puts "Nicht unter den ersten 300 Ergebnissen" end

end

SEO - Googlesuche mit Eintrag in Text & Tabellen Formular

require 'rubygems'
require 'mechanize'

agent = WWW::Mechanize.new
time = Time.new
puts time.strftime("%Y-%m-%d %H:%M:%S")

suchbegriffe = [
'pfandhaus', 
'pfandleihe', 
'leihhaus', 
"leihhaus berlin", 
'Pfandkredit',
"Bargeld sofort",
"pfandleihhaus berlin",
'goldankauf', 
'Zahngold',
'Goldmuenzen', 
'schmuckankauf', 
"Ankauf hochwertiger Uhren", 
'Juwelier',
"Juwelier Berlin", 
'geldwechsel', 
'wechselstube', 
"Travelers Cheques"]

ergebnisse = { 
'pfandhaus'=>0, 
'pfandleihe'=>0, 
'leihhaus'=>0, 
"leihhaus berlin"=>0, 
'Pfandkredit'=>0,
"Bargeld sofort"=>0,
"pfandleihhaus berlin"=>0,
'goldankauf'=>0, 
'Zahngold'=>0,
'Goldmuenzen'=>0, 
'schmuckankauf'=>0, 
"Ankauf hochwertiger Uhren"=>0, 
'Juwelier'=>0,
"Juwelier Berlin"=>0, 
'geldwechsel'=>0, 
'wechselstube'=>0, 
"Travelers Cheques"=>0 }


suchbegriffe.each do |suchbegriff|

found=false

puts "\n"+suchbegriff
#puts ".........Mapsergebnisse pfandleihhaus................"
agent.get('http://www.google.de/advanced_search?hl=de&num=100&start=0')
agent.page.forms.first.as_q = suchbegriff
agent.page.forms.first.submit
res = agent.page.search('h4[@class="r"]/a[@class="l"]')
#links.each{|link| puts "#{link.text} (#{link['href']})"}
res.each_with_index{|link, index| 
if link.text.index('Exchange AG') then
puts "Position #{index+1} #{link.text} (#{link['href']})"
found=true
ergebnisse[suchbegriff]=index+1
 break
else
#puts "#{index+1} #{link.text} (#{link['href']})"
end
}


if !found then
#puts ".........Suchergebnisse pfandleihhaus................"
agent.get('http://www.google.de/search?hl=de', {"num"=>"100","start"=>"0", "q"=>suchbegriff})
links = agent.page.search('h3[@class="r"]/a[@class="l"]')
links.each_with_index{|link, index| 
if link.text.index('Exchange AG') then
puts "Position #{index+1+res.length} #{link.text} (#{link['href']})"
found=true
ergebnisse[suchbegriff]=index+1+res.length
 break
else
#puts "Position #{index+1}: #{link.text} (#{link['href']})"
end
}
end

if !found then
#puts ".........Suchergebnisse pfandleihhaus................"
agent.get('http://www.google.de/search?hl=de', {"num"=>"100","start"=>"100", "q"=>suchbegriff})
links = agent.page.search('h3[@class="r"]/a[@class="l"]')
links.each_with_index{|link, index| 
if link.text.index('Exchange AG') then
puts "Position #{index+1+res.length+100} #{link.text} (#{link['href']})"
found=true
ergebnisse[suchbegriff]=index+1+res.length+100
break      
#break
else
#puts "#{index+1} #{link.text} (#{link['href']})"
end
}
end

if !found then
#puts ".........Suchergebnisse pfandleihhaus................"
agent.get('http://www.google.de/search?hl=de', {"num"=>"100","start"=>"200", "q"=>suchbegriff})
links = agent.page.search('h3[@class="r"]/a[@class="l"]')
links.each_with_index{|link, index| 
if link.text.index('Exchange AG') then
puts "Position #{index+1+res.length+200} #{link.text} (#{link['href']})"
found=true
ergebnisse[suchbegriff]=index+1+res.length+200
break      
#break
else
#puts "#{index+1} #{link.text} (#{link['href']})"
end
}
end

if !found then 
puts "Nicht unter den ersten 300 Ergebnissen" 
ergebnisse[suchbegriff]=300
end

end


#...Eintrag im Text & Tabellen Formular, welches einen Klick auf den Submitbutton wegen Javascript benötigt
agent2 = WWW::Mechanize.new
agent2.get('https://spreadsheets.google.com/viewform?formkey=ID')
#e1=agent2.page.forms.first.field_with(:name => 'entry.1.single') 
#e1.value = ergebnisse['pfandhaus']
#pp e1
form = agent2.page.forms[0]

form.fields.find {|f| f.name == 'entry.1.single'}.value = ergebnisse['pfandhaus'] 
form.fields.find {|f| f.name == 'entry.2.single'}.value = ergebnisse['pfandleihe'] 
form.fields.find {|f| f.name == 'entry.3.single'}.value = ergebnisse['leihhaus'] 
form.fields.find {|f| f.name == 'entry.4.single'}.value = ergebnisse["leihhaus berlin"] 
form.fields.find {|f| f.name == 'entry.5.single'}.value = ergebnisse['Pfandkredit'] 
form.fields.find {|f| f.name == 'entry.6.single'}.value = ergebnisse["Bargeld sofort"]
form.fields.find {|f| f.name == 'entry.7.single'}.value = ergebnisse["pfandleihhaus berlin"]
form.fields.find {|f| f.name == 'entry.8.single'}.value = ergebnisse['goldankauf']
form.fields.find {|f| f.name == 'entry.9.single'}.value = ergebnisse['Zahngold']
form.fields.find {|f| f.name == 'entry.10.single'}.value = ergebnisse['Goldmuenzen']
form.fields.find {|f| f.name == 'entry.11.single'}.value = ergebnisse['schmuckankauf']
form.fields.find {|f| f.name == 'entry.12.single'}.value = ergebnisse["Ankauf hochwertiger Uhren"]
form.fields.find {|f| f.name == 'entry.13.single'}.value = ergebnisse['Juwelier']
form.fields.find {|f| f.name == 'entry.14.single'}.value = ergebnisse["Juwelier Berlin"]
form.fields.find {|f| f.name == 'entry.15.single'}.value = ergebnisse['geldwechsel']
form.fields.find {|f| f.name == 'entry.16.single'}.value = ergebnisse['wechselstube']
form.fields.find {|f| f.name == 'entry.17.single'}.value = ergebnisse["Travelers Cheques"]



page = agent2.submit form, form.buttons.first
File.open("res.html","wb+") { |f| f.write(page.body) }

Google Charts

Google Charts

Kurvendiagramm als Polygonzug mit zwei Achsenbeschriftungen, 
y-Achse: Range von 0 bis 120 
x-Achse: einzelne Werte

http://chart.apis.google.com/chart?cht=lc&chd=t:33,31,56,14,44,85,14,12,46&chs=300x200&chxt=x,y&chxr=1,0,120,20&chxl=0:|März|Juni|September|November