Ho un file HTML (da Newegg) e il loro HTML è organizzato come di seguito. Tutti i dati nella tabella delle specifiche sono " desc " mentre i titoli di ogni sezione sono in " nome " . Di seguito sono riportati due esempi di dati dalle pagine di Newegg.
<tr>
<td class="name">Brand</td>
<td class="desc">Intel</td>
</tr>
<tr>
<td class="name">Series</td>
<td class="desc">Core i5</td>
</tr>
<tr>
<td class="name">Cores</td>
<td class="desc">4</td>
</tr>
<tr>
<td class="name">Socket</td>
<td class="desc">LGA 1156</td>
<tr>
<td class="name">Brand</td>
<td class="desc">AMD</td>
</tr>
<tr>
<td class="name">Series</td>
<td class="desc">Phenom II X4</td>
</tr>
<tr>
<td class="name">Cores</td>
<td class="desc">4</td>
</tr>
<tr>
<td class="name">Socket</td>
<td class="desc">Socket AM3</td>
</tr>
Alla fine mi piacerebbe avere una classe per una CPU (che è già impostata) che consiste in un tipo di marca, serie, core e socket per memorizzare ciascuno dei dati. Questo è l'unico modo in cui riesco a pensare di fare questo:
if(parsedDocument.xpath(tr/td[@class="name"])=='Brand'):
CPU.brand = parsedDocument.xpath(tr/td[@class="name"]/nextsibling?).text
E facendo questo per il resto dei valori. Come potrei realizzare il prossimo fratello e c'è un modo più semplice per farlo?
td[@class='name']
si romperà. Vedi questa domanda per i dettagli.