我用 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§or=0¤cy=0 &type_of_share=0&year=_all_years&sales=_&p rofit_loss=&sum_assets=&sum_liabilities= &number_of_shares=&earnings_per_share= ÷nd_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=_÷nd _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]等等。我只是不知道现阶段的问题是什么。
1 回答
慕田峪7331174
TA贡献1828条经验 获得超13个赞
你的问题是你在打印数组的同时在循环中添加它。
要解决此问题,您可以在数组外部打印数组以一次性打印所有内容,或者您可以打印link3(这是您要添加到 ArrayList 的内容),而不是循环中的数组。
选项1:
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);
选项 2:
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(link3);
}
添加回答
举报
0/150
提交
取消