Jawn78

Untitled

Dec 15th, 2018
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.75 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package scrapergui;
  7.  
  8. import java.io.BufferedWriter;
  9. import java.io.File;
  10. import java.io.IOException;
  11. import java.nio.file.Files;
  12. import java.nio.file.Paths;
  13. import org.apache.commons.csv.CSVFormat;
  14. import org.apache.commons.csv.CSVPrinter;
  15. import org.jsoup.Jsoup;
  16. import org.jsoup.nodes.Document;
  17. import org.jsoup.nodes.Element;
  18.  
  19. /**
  20.  *
  21.  * @author jonat
  22.  */
  23. public class printPageSource {
  24.      private static final String SAMPLE_CSV_FILE = "./sample.csv";
  25. public printPageSource(String pageSource) throws IOException{
  26.          Document doc = Jsoup.parse(pageSource);
  27. //System.out.println(bradon.text());
  28.         Element[] person_block;
  29.         Element[] email_block;
  30.         Element[] phone_block;
  31.         Element[]  company_phone_block;
  32.         Element[]  company_name_block;
  33.         Element[] company_detail_block;
  34.         Element[] company_content_left;
  35.         person_block = doc.getElementsByClass("person-row-container").toArray(new Element[doc.getElementsByClass("person-row-container").size()]);
  36. System.out.println(doc.getElementsByClass("contact-details-content").size());        
  37. email_block = doc.getElementsByClass("email-link").toArray(new Element[doc.getElementsByClass("email-link").size()]);
  38. phone_block = doc.getElementsByClass("direct-phone").toArray(new Element[doc.getElementsByClass("direct-phone").size()]);
  39. company_phone_block = doc.getElementsByClass("hq-phone").toArray(new Element[doc.getElementsByClass("hq-phone").size()]);
  40. company_name_block = doc.getElementsByClass("company-name long-text").toArray(new Element[doc.getElementsByClass("company-name long-text").size()]);
  41. company_detail_block = doc.getElementsByClass("primaryCompany-container").toArray(new Element[doc.getElementsByClass("primaryCompany-container").size()]);
  42. company_content_left = doc.getElementsByClass("primary-content ng-star-inserted").toArray(new Element[doc.getElementsByClass("primary-content ng-star-inserted").size()]);
  43. //primary-content-left
  44.  
  45.         int lengthy = person_block.length;
  46.  
  47.  try (
  48.             BufferedWriter writer = Files.newBufferedWriter(Paths.get(SAMPLE_CSV_FILE));
  49.  
  50.             CSVPrinter csvPrinter = new CSVPrinter(writer, CSVFormat.DEFAULT
  51.                     .withHeader("ID", "Full Name", "Title","Company", "Email", "Phone", "Company Phone", "Website","Address"));
  52.         ) {
  53.             int i = 0;
  54.        
  55.      
  56.      while(i < person_block.length){
  57.                 String fullName = person_block[i].getElementsByClass("primary-name").text();
  58.                 String title = person_block[i].getElementsByClass("person-title").text();
  59.                 String email = email_block[i].getElementsByClass("email-link").text().replace("Email", "");
  60.                 String phone = phone_block[i].getElementsByClass("direct-phone").text().replace("- (Direct)","").replace("Phone (Direct)", "").replace("(Direct)", "");
  61.                 String hqPhone = company_phone_block[i].getElementsByClass("hq-phone").text().replace("- (HQ)","").replace("(HQ)","");
  62.                 String company_name = company_name_block[i].getElementsByClass("company-name long-text").text();
  63.                 String company_detail = company_detail_block[i].getElementsByClass("link").text();
  64.                 String location_detail = company_content_left[i].getElementsByClass("local-content location-content").text();
  65.                
  66.                 //fix grabbing html
  67.              csvPrinter.printRecord(i, fullName, title, company_name, email, phone, hqPhone, company_detail, location_detail);
  68.              
  69.             i++;
  70.  }
  71.             csvPrinter.flush();    
  72.    
  73.         }
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment