Zappykeyboard

Scraper commercialisti Brindisi

Oct 20th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.27 KB | None | 0 0
  1.  
  2. require 'rubygems'
  3. require 'nokogiri'
  4. require 'open-uri'
  5. require 'csv'
  6. require 'benchmark'
  7.  
  8. persona = Hash.new
  9.  
  10. csvFile = 'Commercialisti Provincia di Brindisi'
  11.  
  12. #per troare gli indirizzi email su questo sito sono necessarie due operazioni: accedere alla pagina con la lista dei nominativi
  13. # e relativi link, e poi accedere ai link individualmente. Questo perché gli id dei nominativi sono apparentemente assegnati in modo casuale
  14. for i in (1..43)
  15.    
  16.     page = Nokogiri::HTML(open("http://www.odcecbrindisi.it/albo/iscritti.php?entityid=-1&categoria=0&keywords=&localita=&pag=" + i.to_s), 'UTF-8')
  17.    
  18.     links = page.css("a.iscritto")
  19.  
  20.     links.each do |link|
  21.         scheda = Nokogiri::HTML(open('http://www.odcecbrindisi.it'+link['href']))
  22.         nome = (scheda.css('table')[0].css('tr')[1].css('td')[1].text) + ' ' + (scheda.css('table')[0].css('tr')[2].css('td')[1].text)
  23.         email= scheda.css('table')[2].css('tr')[3].css('td')[1].css('a').text
  24.         persona[nome] = email
  25.     end
  26.     puts 'pagina ' + i.to_s
  27. end
  28.  
  29. puts persona.length.to_s + ' persone trovate'
  30.  
  31. CSV.open(csvFile + ".csv", "w") do |csv|
  32.             csv << ["Indirizzo e-mail","Nome"]
  33.             persona.each do |key, value|
  34.                 csv << [value, key]
  35.             end
  36.         end
  37. puts 'fine'
Advertisement
Add Comment
Please, Sign In to add comment