Java は Jsoup を使用して Web ページの指定された要素を取得します

Web ページ上の指定された要素をキャプチャする必要があります:
ここに画像の説明を挿入
当初は webMagic を使用することを考えていましたが、それは少し複雑に感じます. ここでは、Jsoup を直接使用してキャプチャします:
1. 依存関係をインポートします:

 <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.14.1</version>
 </dependency>

2. 接続を作成し、ページ要素を解析します

まず URL を定義します。

 String url="https://ncbi.nlm.nih.gov/gene/51185";

次に、接続を作成し、get リクエストを通じて Web ページのドキュメント オブジェクトを取得します。
単純なバージョンは次のとおりです。

Document document = Jsoup.connect(url).get();

ただし、クラスで例外をスローする必要があるため、ここではエラーを処理するためにキャプチャ メソッドが使用されます。

 Connection conn = Jsoup.connect(url);
        Document document = null;
        try {
    
    
            document = conn.get();
        } catch (IOException e) {
    
    
            e.printStackTrace();
            // handle error
        }

ページ要素を分析します:
ここに画像の説明を挿入
対応する要素を選択します: jsoup の構文はここには掲載されません

 Element firstHeading = document.getElementsByClass("rprt-section gene-summary").first();
        Elements noline = firstHeading.getElementsByTag("dd");
        String element = noline.get(1).text();

しかし、キャプチャされたコンテンツは少し多すぎます。
ここに画像の説明を挿入
ここで必要なのはセレブロンだけです。結果内で初めて provided が表示される位置を見つけて、文字列インターセプトのメソッドを使用して必要な結果、つまり完全なコードを取得できます
ここに画像の説明を挿入
。以下のとおりであります:

 public static void main(String[] args)  {
    
    

       String url="https://ncbi.nlm.nih.gov/gene/51185";

      Connection conn = Jsoup.connect(url);
        Document document = null;
        try {
    
    
            document = conn.get();
        } catch (IOException e) {
    
    
            e.printStackTrace();
            // handle error
        }

        Element firstHeading = document.getElementsByClass("rprt-section gene-summary").first();
        Elements noline = firstHeading.getElementsByTag("dd");
        String element = noline.get(1).text();
        int provided = element.indexOf("provided");
        String fullName = element.substring(0, provided);
        System.out.println(fullName);

    }

おすすめ

転載: blog.csdn.net/weixin_42260782/article/details/130993552