gpt4 book ai didi

java - 从我从网站上抓取的文本中删除空白

转载 作者:行者123 更新时间:2023-12-04 05:20:16 24 4
gpt4 key购买 nike

我正在尝试从网站上抓取一份药物 list 。
我正在使用 JSOUP 来解析 Html。

这是我的代码:

URL url = new URL("http://www.medindia.net/drug-price/index.asp?alpha=a");
Document doc1 = Jsoup.parse(url, 0);

Elements rows = doc1.getElementsByAttributeValue("style", "padding-left:5px;border-right:1px solid #A5A5A5;");

for(Element row : rows){
String htm = row.text();
if(!(htm.equals("View Price")||htm.contains("Show Details"))) {
System.out.println(htm);
System.out.println();
}
}

这是我得到的输出:

Output Image

附言这不是完整的输出但是由于我无法截取完整输出的屏幕截图,所以我只是显示了它。

我需要知道两件事:

问题 1。为什么我在每个药物名称前都有一个额外的空格,为什么我在某些药物名称后有额外的换行符?

问题 2。如何解决此问题?

最佳答案

一些事情:

  • 这不是完整的输出,因为不止一页。我放了一个 for为您解决这个问题的循环。
  • 您可能应该使用 htm.trim() 修剪输出
  • 当有新行( !htm.isEmpty() )
  • 时,您可能应该确保不打印
  • 该网站有一个奇怪的字符,其中的 ASCII 值为 160。我添加了一个解决问题的小修复程序。 (与 .replace )

  • 这是固定代码:
    for(char page='a'; page <= 'z'; page++) {
    String urlString = String.format("http://www.medindia.net/drug-price/index.asp?alpha=%c", page);
    URL url = new URL(urlString);
    Document doc1 = Jsoup.parse(url, 0);
    Elements rows = doc1.getElementsByAttributeValue("style", "padding-left:5px;border-right:1px solid #A5A5A5;");
    for(Element row : rows){
    String htm = row.text().replace((char) 160, ' ').trim();
    if(!(htm.equals("View Price")||htm.contains("Show Details"))&& !htm.isEmpty())
    {
    System.out.println(htm.trim());
    System.out.println();
    }
    }
    }

    关于java - 从我从网站上抓取的文本中删除空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13764934/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com