我正在尝试编写一些简单的网络抓取工具,但对包含č或ć的单词有疑问。这些信件在我的语言中很常见。如果我有单词不包含那些信件履带工程,但如果我搜索č或ć没有结果。如果我能得到结果并将č和ć转换成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之前测试它。
答案 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");
}