私はJsoupで解析しているHTMLブロックを持っていますが、そのすべてが関連しているわけではなく、無関係な部分を解析するとデータセットが破棄されます。Jsoupは指定されたタグの解析を開始するか、ページの下から開始しますか?
サイトには、いつでも変更できるヘッダーがあります。このヘッダーにはリンクはありますが、私が気にしないリンクです。 Jsoupがドキュメントを解析するとき、Jsoupはそれらの考えをリンク配列に追加し、自分の値を投げ捨てます。
私が興味を持っているHTMLは、 <!-- BEGIN TOPICS -->
タグの後に続きます。
私はJsoupにそのタグの上のすべてを無視するように指示したいと思います。これは可能ですか?そうでない場合は、ドキュメントの最後に解析を開始してこの問題を回避することができますが、どのようにすればよいかわかりません。
My Jsoupのクエリは次のとおりです。であることがすべてコメントアウト行とデバッグ文を無視してください、私はしばらくの間、これをうまくしようとすると、まだでテストコードを持ってきました。
Thread getTitlesThread = new Thread() {
public void run() {
TitleResults titleArray = new TitleResults();
StringBuilder whole = new StringBuilder();
try {
URL url = new URL(
Constants.FORUM);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");
try {
BufferedReader in = new BufferedReader(
new InputStreamReader(new BufferedInputStream(urlConnection.getInputStream())));
String inputLine;
while ((inputLine = in.readLine()) != null)
whole.append(inputLine);
in.close();
} catch (IOException e) {}
finally {
urlConnection.disconnect();
}
} catch (Exception e) {}
Document doc = Parser.parse(whole.toString(), Constants.FORUM);
Elements threads = doc.select("TOPICS > .topic_title");
Elements authors = doc.select("a[hovercard-ref]");
// for (Element author : authors) {
// authorArray.add(author.text());
// }
// cleanAuthors();
if (threads.isEmpty()) {
Log.d("POC", "EMPTY BRO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11");
}
// for (Element thread : threads) {
// titleArray = new TitleResults();
// Log.d("POC", thread.toString());
//
// titleArray.setAuthorDate(authorArray.get(0));
// authorArray.remove(0);
//Thread title
// threadTitle = thread.text();
// titleArray.setItemName(threadTitle);
//
// //Thread link
// String threadStr = thread.attr("abs:href");
// String endTag = "/page__view__getnewpost"; //trim link
// threadStr = new String(threadStr.replace(endTag, ""));
// threadArray.add(threadStr);
// results.add(titleArray);
// }
}
};
getTitlesThread.start();
ドキュメントドキュメント= Parser.parse(whole.toString()。replaceAll( "<! - end広告タグ - >?*?<! - BEGIN TOPICS '<! - end ad tag - >'は無視したい部分の始まりであり、 '<! - BEGIN TOPICS - > '終わりだった。 – r2DoesInc