Advertisement
jbjares

DigitalsalesdataExtractionCode

May 10th, 2015
501
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.62 KB | None | 0 0
  1. package com.soundwave.massgen;
  2.  
  3.  
  4. import java.io.BufferedReader;
  5. import java.io.File;
  6. import java.io.FileInputStream;
  7. import java.io.InputStreamReader;
  8. import java.text.SimpleDateFormat;
  9. import java.util.ArrayList;
  10. import java.util.Date;
  11. import java.util.List;
  12.  
  13. import org.apache.commons.io.FileUtils;
  14. import org.jsoup.Jsoup;
  15. import org.jsoup.nodes.Document;
  16. import org.jsoup.nodes.Element;
  17. import org.jsoup.select.Elements;
  18.  
  19. import com.fasterxml.jackson.dataformat.csv.CsvSchema;
  20. import com.soundwave.model.itunessalesdata.ITunesDigitalSalesData;
  21.  
  22. public class ITunesSalesDataGen implements GenInterface{
  23.        
  24.         public void gen() throws Exception{
  25.                 List<ITunesDigitalSalesData> result = new ArrayList<ITunesDigitalSalesData>();
  26.                 ITunesDigitalSalesData itunesDigitalSalesData = null;
  27.                 FileInputStream fis = new FileInputStream(getClass().getClassLoader().getResource("iTunesCodesAndCountries.csv").getFile());
  28.  
  29.             BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
  30.             reader.readLine();
  31.             String line;
  32.             CsvSchema csvSchema = CsvSchema.builder()
  33.                     .addColumn("name")
  34.                     .addColumn("description")
  35.                     .setUseHeader( true )
  36.                     .build()
  37.                     .withLineSeparator("\r\n");
  38.  
  39.             StringBuffer sb = new StringBuffer();
  40.             sb.append("ID");
  41.             sb.append(";");
  42.             sb.append("COUNTRY");
  43.             sb.append(";");
  44.             sb.append("DATE");
  45.             sb.append(";");
  46.             sb.append("RANK");
  47.             sb.append(";");
  48.             sb.append("ARTIST");
  49.             sb.append(";");
  50.             sb.append("TITLE");
  51.             sb.append(";");
  52.             sb.append("SALES");
  53.             sb.append("\n");
  54.             while ((line = reader.readLine()) != null) {
  55.                
  56.                 String[] lineAttributes = line.split(";");
  57.                
  58.                 String countryNumber = lineAttributes[0];
  59.                 String country = lineAttributes[1];
  60.                
  61.                 Document doc = Jsoup.connect("http://www.digitalsalesdata.com/diydsd.php?Region="+countryNumber).postDataCharset("UTF-8").timeout(0).get();
  62.                
  63.                 for (Element table : doc.select("div").select("table")) {
  64.                     for (Element row : table.select("tr")) {
  65.                         Elements tds = row.select("td");
  66.                         if (tds.size() > 0) {
  67. //                              itunesDigitalSalesData = new ITunesDigitalSalesData();
  68. //                              itunesDigitalSalesData.setId(countryNumber);
  69. //                              itunesDigitalSalesData.setCountry(country);
  70. //                              itunesDigitalSalesData.setDate(new SimpleDateFormat("dd/MM/yyyy").format(new Date()));
  71. //                              itunesDigitalSalesData.setRank(tds.get(0).text());
  72. //                              itunesDigitalSalesData.setArtist(tds.get(1).text());
  73. //                              itunesDigitalSalesData.setTitle(tds.get(2).text());
  74. //                              itunesDigitalSalesData.setSales(tds.get(3).text());
  75. //                              result.add(itunesDigitalSalesData);
  76.                                 if("RANK".equals(tds.get(0).text())){
  77.                                         continue;
  78.                                 }
  79.                                
  80.                                 sb.append(countryNumber);
  81.                                 sb.append(";");
  82.                                 sb.append(country);
  83.                                 sb.append(";");
  84.                                 sb.append(new SimpleDateFormat("dd/MM/yyyy").format(new Date()));
  85.                                 sb.append(";");
  86.                                 sb.append(tds.get(0).text());
  87.                                 sb.append(";");
  88.                                 sb.append(tds.get(1).text());
  89.                                 sb.append(";");
  90.                                 sb.append(tds.get(2).text());
  91.                                 sb.append(";");
  92.                                 sb.append(tds.get(3).text());
  93.                                 sb.append("\n");
  94.                         }
  95.                     }
  96.                 }
  97.                
  98.             }
  99.             FileUtils.writeStringToFile(new File("src/main/resources/itunessalesdata2.csv"),sb.toString(),"UTF-8");
  100.         }
  101.  
  102.         public static void main(String[] args) throws Exception {
  103.                 new ITunesSalesDataGen().gen();
  104.         }
  105.        
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement