1

更新: zEro の回答を受け入れてくれた皆さんに感謝します。それは私の問題を解決したようで、すてきできちんとしています。

こんにちは、私は現在jsoupでいくつかの作業を行っており、ページからいくつかのデータをスクレイピングしています...

このコード ブロックが nullpointerexception をスローするという問題が発生しているようです

Element imagelink;
imagelink = post.getElementsByClass("separator").first().getElementsByTag("img").first();
if(imagelink != null){
if(imagelink.attr("src") != null){
imageURL = imagelink.attr("src");
}else{
imageURL = "http://img27.imageshack.us/img27/1209/k0ve.jpg";    
}
}else{
imageURL = "http://img27.imageshack.us/img27/1209/k0ve.jpg";
}                           }`

NULL ポインターを回避するようにステートメントを調整しようとしましたが、それを取り除くことができないようです。

誰にもアイデアはありますか?

アップデート:

これは、私がスクレイピングしているページが非常にずさんな HTML を持っていることが原因のようです。いくつかのタグがあり、いくつかのタグはありません...

これを修正するには、すべての要素が存在することを確認するために多くのトラッピングを実行する必要がありました...私はこれを思いつきましたが、誰かが簡単な書き方を見ることができれば幸いです。(私はJavaにかなり慣れていないため)

Element imagelink;
                        imagelink = post.getElementsByClass("separator").first();
                        if(imagelink != null){
                            imagelink = imagelink.getElementsByTag("img").first();
                            if(imagelink !=null){
                                if(imagelink.attr("src") != null){
                                    imageURL = imagelink.attr("src");
                                }else{
                                    imageURL = "http://img27.imageshack.us/img27/1209/k0ve.jpg";
                                }
                            }else{
                                imageURL = "http://img27.imageshack.us/img27/1209/k0ve.jpg";    
                            }
                        }else{
                            imageURL = "http://img27.imageshack.us/img27/1209/k0ve.jpg";
                        }
4

1 に答える 1