public static void main (String [] args){
		setupProxies();
		sendPost();
		SQLite4jWrapper.getInstance().open();
		try {
			Document doc = parseFromFile();
			Elements tables = doc.getElementsByTag("table");
			System.out.print("List length : " + tables.size() + "\n");
			String reutersURL;
			try {
				SQLite4jWrapper.getInstance().exec("DELETE FROM SecurityStats");
			} catch (SQLiteException e2) {
				// TODO Auto-generated catch block
				e2.printStackTrace();
			}
			Element symbolElem;
			for (int i =0 ; i < tables.size(); i++){
				// from table > tbody > tr 	
				
				Element tr = tables.get(i).child(0).child(0);
//				System.out.print(tr);
				//0 is position num
				//1 Security Name
				//2 Symbol
				//3 Last Trade Date
				//4 Last Trade Price
				//5 Outstanding Shares
				//6 Free float level
				//7 Full Market Capitalization
				//8 % Weight
				
				symbolElem = tr.child(2); // td > div > a
				
				if (symbolElem.text().trim().equals("") || symbolElem.text().trim().equals("Symbol"))
					continue;
				
				reutersURL = REUTERS_FINANCIAL_URL.replace("***", symbolElem.text());
				
				
				security.setFreeFloatLevel(Double.parseDouble(tr.child(6).text()));
				try {
					security.setFreeFloatMarketCap((nf.parse(tr.child(7).text()).longValue()));
				} catch (ParseException e) {
					e.printStackTrace();
				}
				security.setLastTradeDate(tr.child(3).text());
				try {
					security.setLastTradePrice(new BigDecimal((nf.parse(tr.child(4).text()).doubleValue())));
				} catch (ParseException e1) {
					e1.printStackTrace();
				}
				try {
					security.setOutstandingShares((nf.parse(tr.child(5).text()).longValue()));
				} catch (ParseException e) {
					e.printStackTrace();
				}
				
				security.setPercentWeight(Double.parseDouble(tr.child(8).text()));
				security.setSecurityName((tr.child(1).text()));
				security.setSymbolCode((tr.child(2).text()));
				sDAO.saveSymbol(security);
				Tracer.trace("Parsing : " + reutersURL);
				try{
					Document reutersDoc = Jsoup.connect(reutersURL).timeout(20000).get();	
					parseFinancialsFromDocument(reutersDoc);
//					break;
					
				}catch (SocketTimeoutException e){
					Tracer.trace("TIMEOUT FOR : " + reutersURL);
					writeToFile(reutersURL);
					writeToFile(e.getStackTrace().toString());
					e.printStackTrace();
				}

			
			}
			

		} catch (IOException e) {
			e.printStackTrace();
		}
		SQLite4jWrapper.getInstance().close();
	}