2012-06-10 2 views
1

как разобрать таблицу без тега идентификатора. Я пытаюсь разобрать таблицу с исходным кодом строки с 2290 по 3153 http://pastebin.com/DjGHED5tкак разобрать таблицу без тега идентификатора с помощью jsoup.

Мне не ясно, как это сделать. что у меня есть сейчас

import java.util.*; 
import java.io.*; 
import java.awt.*; 
import javax.swing.*; 
import org.jsoup.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.KeyEvent; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

public class test{ 
public static void main (String []args){ 
    String Ticker = "KO"; 
    URL url = new URL("http://toolbox.investools.com/graphs/fundamentalAnalysis.iedu?report=BS&symbol="+(Ticker)); 
    Document doc = Jsoup.parse(url, 3000); 
    Elements table = doc.select(table); 
    Iterator<Element> ite = table.select(table[width="100%"] [bgcolor="#CCCCCC"] [cellpadding="0"] [cellspacing="2"]); 

     String[][] balanceSheetInfo = new String [46][11]; 

     while (ite.hasNext()){ 
      for (int row = 0, row_size = balanceSheetInfo[row].length; row < row_size; row++){ 
        for (int col = 0, col_size = balanceSheetInfo.length; col < col_size; col++){ 
         if(ite.hasNext()){ 
         balanceSheetInfo[col][row] = input.next(); 
         System.out.printf("%s",balanceSheetInfo[col][row]);       } 
        } 
       }     
      } 
     } 
    } 

Но я получаю символ не найденных ошибок. Я не сильно разбираюсь в Jsoup и выскальзывает, потому что это первый проект, в котором я его использовал. Если бы кто-то мог вести меня, это было бы очень признательно.

ответ

1

Читать код:

Elements table = doc.select(table); 

Вы используете табличную переменную (в doc.select(table)), прежде чем он даже объявлен. Element.select() method принимает аргумент String. Вам необходимо

Elements table = doc.select("table"); 

с двойными кавычками, которые выберут все элементы таблицы.

Следующая строка имеет ту же проблему:

table.select(table[width="100%"] [bgcolor="#CCCCCC"] [cellpadding="0"] [cellspacing="2"]); 

должен быть

table.select("table[width=\"100%\"] [bgcolor=\"#CCCCCC\"] [cellpadding=\"0\"] [cellspacing=\"2\"]"); 
+0

хмм ... ок. Это должно помочь. До 4 ошибок от 9 – user1093111

+0

3 ошибки теперь ... – user1093111

+0

if (ite.hasNext()) { balanceSheetInfo [col] [row] = ite.text(); System.out.printf ("% s", balanceSheetInfo [Col] [строка]); он говорит, что метод ite.text() не существует. может быть, скомпилирован неправильно? – user1093111