1

Id タグなしでテーブルを解析する方法。ソース コード行 2290 から 3153 でテーブルを解析しようとしていますhttp://pastebin.com/DjGHED5t

それを行う方法は私には明らかではありません。私が今持っているのは

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 が苦手で、スクレイピングを使用したのはこれが初めてのプロジェクトであるためです。

4

1 に答える 1

1

あなたのコードを読んでください:

Elements table = doc.select(table);

doc.select(table)宣言する前にテーブル変数 (in ) を使用しています。このElement.select()メソッドは、文字列を引数として取ります。あなたが必要

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\"]");
于 2012-06-10T21:03:55.843 に答える