我一直在使用Jsoup進行HTML解析,但是我遇到了一個很大的問題。它需要1小時太長時間。Html在Java中使用Jsoup解析
這是我正在解析的網站。
<tr>
<td class="class1">value1 </td>
<td class="class1">value2</td>
<td class="class1">value3</td>
<td class="class1">value4</td>
<td class="class1">value5 </td>
<td class="class1">value6</td>
<td class="class1">value7</td>
<td class="class1">value8</td>
<td class="class1">value9</td>
</tr>
在現場,有成千上萬這樣的表,我需要將它們全部解析到一個列表。我只需要value1和value6,所以要使用這個代碼。
Document doc = Jsoup.connect(url).get();
ls = new LinkedList();
for(int i = 15; i<doc.text().length(); i++) {//15 because the tables I want starting from 15
Element element = doc.getElementsByTag("tr").get(i);//table index
Elements row = element.getElementsByTag("td");
value6 = row.get(5).text();//getting value6
value1 = row.get(0).text();//getting value1
node = new Node(value1, value6);
ls.insert(node);
正如我所說,它需要太多的時間,所以我需要做得更快。任何想法如何解決這個問題?
解析單個文件需要一個小時?你分析多少個文件?他們多大?在開始之前他們都在當地嗎?還是你同時爬行一個網站?似乎不太可能在現代硬件上運行單個URL的代碼需要一個小時。 –
你能否包含任何你錯過的東西,比如ls,value1和value6變量。也許從那裏我可以幫助更多。 –
正如我所說,網站上有數百個表格,我只是在解析表格。不,我不爬行,是的,它只有一個包含表格的url。這些值只是一個文本,沒什麼。例如,value1是一個像Michael這樣的名稱,value6只是一個門號碼5。 –