JSoup工作错误

时间:2015-11-26 22:03:24

标签: java html html-parsing jsoup

我正在尝试解析维基百科页面。我目前正在同时运行100 Thread秒。问题是这样的;当我试图解析整个页面上下文时,有时上下文被破坏或只是缺少一些段落。我真的不明白这是什么问题。

该项目有两个部分。一个是在页面中找到所有href links。(正常工作)。另一个是在页面中找到一个简单的文本(不能正常工作)。

Document doc = null;
try {
    doc = Jsoup.connect(link).get();
} catch (Exception  e) {
    e.printStackTrace();
    return;
}

Elements divs = doc.select("div#bodyContent");
Elements texts = divs.select("div#mw-content-text");
Elements paragraphs = texts.select("p");
//this part is working correctly(finding all links)
Elements links = paragraphs.select("a");
Elements headerContainer = doc.select("h1#firstHeading");

//this part is not working correctly.(Some parts are corrupted or even in one sentence it gets some words but others might be missing)
StringBuilder bl = new StringBuilder();
for(Element elem : paragraphs){
    bl.append(Jsoup.parse(elem.html()).text());
}
String p = bl.toString();

编辑1:https://tr.wikipedia.org/wiki/%C4%B0spanya示例链接就是这个。

此页面的上下文是:
veenbüyükşehirİspanyahâlâPortekizcekonuşangruplarbulunmaktadır.TatilsezonubaşladığındaAlmanya'dan,Polonya'danvebirçokGüneyAmerikaülkesindenözellikletatilyörelerineçalışmayagelenbirçokkişipulurur。 Costa Blanca ya da Costa del SolgibibazıturistikbölgelereterleşmişolabirçokAlmanveİngilizdemevcuttur.YabancıdilolarakİngilizceveFrannsızcakonuşulur。 Gençİspanyollaryabancıdilolarakdahaçokİngilizceyiöğrenirken,yaşıbüyükolanİspanyollardahaziyadeFrannsızcabilmektedirler.İspanyolanayasasıikincimaddesinde devletin birdinininolmadığınıbelirtir。 Ancakhalkın%96'si resmi olarak Katolik'tir。 Bununyanında2002yılındaCentrodeInvestigacionesSociológicaskurumununyaptığıbiranket sonucundaanketekatılanlarınsadece%80'iKatolikolduğunushöylemiştir。 %12'lik kesimin ise herhangi bir dinemensupolmadığıortayaçıkmıştır。 Katoliklerin de%54'ününçokazkiliseyeigtiğiveyahiçgitmediğibununmuştur。 Diğerkatoliklerinde%15'iarasıra,10%'uaydabirkaçkez,19%'你是她的pazarkiliseyeittğinibelirtmiştir。 Tümİspanyolhalkının%22'si ise en az ayda birdinigörevleriniyerinegetirdiğinibelirtmiştir.KatolikKilisesiPapalıklapapılanbiranlaşmadandolayıİspanyaükûmetitafındandesteklenenbir kilisedir。 İspanya'daKatolikKilisesi inananlardantoplananyardımlarsonucuayaktakalmadığından,resmiolarakyardımtoplamasınadagerek yoktur。 Hıristiyanlarınnençokziyaretettiğikutsalyerlerden biri olan Santiago de Composteladaİspanya'dabulunmaktadır.Nüfusun%2.5'iniİslam,%1'den dahaazkısmınıiseYahudi dininemensupkişileroluşturmaktadır.MadridBarselonaKonuylailgilidiğerWikiimediasayfaları:Commons'taİspanya ileilgiliçokluortamosylarlarıbulunmaktadır.Vikisöz'deİspanyaileilgilialıntılarbulunmaktadır。

1 个答案:

答案 0 :(得分:1)

可能是因为Jsoup的默认响应大小。尝试将maxBodySize设置为更大的数字。

例如,Connection.Reponse response = Jsoup.connect(url) .maxBodySize(5000000) .execute() // in bytes