0
我從Facebook上下載了我的個人數據,並認爲我可以用它做一些有趣的事情。我正在嘗試提取我擁有的特定羣聊。用Java提取html代碼
我使用的文件大小爲18 kB,因此標籤內部有很多html代碼,沒有任何標識或任何有助於提取數據的內容。我所有的聊天之間唯一的區別是它涉及到不同的人,所以這就是我開始檢查的內容。
我正在使用Jsoup(http://jsoup.org/)來執行此操作。文檔的層次結構是這樣排序的:
<div class="thread">
<div class="message">
<div class="message_header">
<span class="user">user_name</span>
<span class="meta"> date_when_said </span>
</div>
</div>
<p>user_said_something</p>
</div> //div class thread ends
<div class="thread"> //new group chat begins
我開始時只是指出每個人在聊天中說了幾句話。
for(int i = 0; i < doc.select("div[class=thread]").size(); i++){
if (doc.select("div[class=thread]").get(i).ownText().equals(chat_name)) {
int children = doc.select("div[class=thread]").get(i).children()
.size();
int traverse = 0;
while (traverse <= children) {
switch (doc.select("span[class=user]").get(traverse).ownText()) {
case user_one:
wordSaid[0] += 1;
break;
case user_two:
wordSaid[1] += 1;
break;
}
}
}
我在這裏做的是,我首先通過for-loop瀏覽所有不同的聊天記錄。然後我檢查該線程的文本是否與我想要提取的聊天內容相同。 如果是,那麼我開始在該線程的所有子節點中迭代。
由於一個線程的子節點最多可容納2000個子節點,因此需要很長時間。
我很樂意爲我的所作所爲提出任何建議或意見,以便我可以改進這一點,並使其具有可擴展性,也許可以找到解決我的任務的巧妙方法。
感謝您的回答!我會盡力嘗試這個。 –