如何将 Jsoup 输出存储在 ArrayList 中?

我用 Jsoup 解析了一个网站并提取了链接。现在我试图将该链接的一部分存储在 ArrayList 中。不知何故我不能一次存储一个链接。


我尝试了几种 String 方法, Scanner 和 BufferedReader 但没有成功。


import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;


public class DatenImportUnternehmen {



public static void main(String[] args) throws IOException {


    ArrayList<String> aktien = new ArrayList<String>();

    String searchUrl = "https://www.ariva.de/aktiensuche/_result_table.m";



    for(int i = 0; i < 1; i++) {


        String searchBody = "page=" + Integer.toString(i) + 

    "&page_size=25&sort=ariva_name&sort_d=asc 

    &ariva_performance_1_year=_&ariva_per 

    formance_3_years=&ariva_performance_5_years= 

    &index=0&founding_year=&land=0&ind 

    ustrial_sector=0&sector=0&currency=0 

    &type_of_share=0&year=_all_years&sales=_&p 

    rofit_loss=&sum_assets=&sum_liabilities= 

    &number_of_shares=&earnings_per_share= 

    &dividend_per_share=&turnover_per_share= 

    &book_value_per_share=&cashflow_per_sh 

    are=&balance_sheet_total_per_share= 

    &number_of_employees=&turnover_per_employee 

    =_&profit_per_employee=&kgv=_&kuv=_&kbv=_&dividend 

    _yield=_&return_on_sales=_";



    // post request to search URL

    Document document = 

    Jsoup.connect(searchUrl).requestBody(searchBody).post();

    // find links in returned HTML

    for(Element link:document.select("a[href]")) {

        String link1 = link.toString();

        String link2 = link1.substring(link1.indexOf('/'));

        String link3 = link2.substring(0, link2.indexOf('"'));



        aktien.add(link3);


        System.out.println(aktien);


    }

    }



}

}                             


我想要实现的是:


[/1-1_drillisch-aktie]

[/11_88_0_solutions-aktie]

[/1st_red-aktie]

[/21st-_cent-_fox_b_new-aktie]

等等。


我只是不知道现阶段的问题是什么。


蝴蝶不菲
浏览 109回答 1
1回答

慕田峪7331174

你的问题是你在打印数组的同时在循环中添加它。要解决此问题,您可以在数组外部打印数组以一次性打印所有内容,或者您可以打印link3(这是您要添加到 ArrayList 的内容),而不是循环中的数组。选项1:for(Element link:document.select("a[href]")) {&nbsp; &nbsp; String link1 = link.toString();&nbsp; &nbsp; String link2 = link1.substring(link1.indexOf('/'));&nbsp; &nbsp; String link3 = link2.substring(0, link2.indexOf('"'));&nbsp; &nbsp; aktien.add(link3);}System.out.println(aktien);选项 2:for(Element link:document.select("a[href]")) {&nbsp; &nbsp; String link1 = link.toString();&nbsp; &nbsp; String link2 = link1.substring(link1.indexOf('/'));&nbsp; &nbsp; String link3 = link2.substring(0, link2.indexOf('"'));&nbsp; &nbsp; aktien.add(link3);&nbsp; &nbsp; System.out.println(link3);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java