Jsoup或Javač和ć

时间:2014-01-31 18:10:34

标签: java jsoup

我正在尝试编写一些简单的网络抓取工具,但对包含č或ć的单词有疑问。这些信件在我的语言中很常见。如果我有单词不包含那些信件履带工程,但如果我搜索č或ć没有结果。如果我能得到结果并将č和ć转换成c我可以解决我的问题。无论如何我能做到吗? 我正在尝试抓取的网页使用的是cp-1250编码。 这是代码:

package crawler;

import java.io.IOException;
import java.util.Scanner;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

/**
 *
 * @author Anak1n
 */
public class Crawler {


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

        Scanner input = new Scanner(System.in);
        String url = "http://www.b92.net";

        String pre = "a[href]:contains";
        String prvaZagrada = "(";
        String drugaZagrada = ")";
        System.out.print("Unesite rec koju trazite");
        String rec = input.next();

        String sve = pre + prvaZagrada + rec + drugaZagrada;
        Document doc = Jsoup.connect(url).get();

        Elements a = doc.select(sve);

        String c = a.toString();

        if (c.length() == 0) {
            System.out.print("nema rezultata");
        } else {

            String zameni = "\\s*\\bamp;\\b\\s*";
            if (c.contains("amp;")) {
                c = c.replaceAll(zameni, "");
            }
            int d = c.lastIndexOf("");

            int start = c.indexOf("\"") + "\"".length();
            int end = c.indexOf("\"", start);
            String v = c.substring(start, end);

            if (url.contains("b92")) {
                System.out.println("http://www.b92.net" + v);
            } else if (url.contains("novosti")) {
                System.out.print("http://www.novosti.rs" + v);
            } else if (url.contains("kurir")) {
                System.out.print("http://www.kurir-info.rs" + v);
            } else if (url.contains("danas")) {
                System.out.print("http://www.danas.rs" + v);
            } else {
                System.out.print(v);
            }

        }

    }
}

编辑:问题在于扫描仪。我不会在我的应用程序中使用Scanner我只是在构建GUI之前测试它。

1 个答案:

答案 0 :(得分:0)

虽然您的问题大多已经减少到IDE控制台的问题,但在复制过程中我已经简化了您的原始代码。您可能会发现它很有用:

try (Scanner input = new Scanner(System.in)) {
  System.out.print("Unesite rec koju trazite");
  final Elements result = Jsoup.connect("http://www.b92.net").get()
        .select("a[href]:contains(" + input.next() + ")");
  System.out.println(result.size() > 0?
      result.get(0).attr("href") : "nema rezultata");
}