Tôi có một tệp HTML (từ Newegg) và HTML của chúng được tổ chức như bên dưới. Tất cả dữ liệu trong bảng thông số kỹ thuật của chúng là ' desc ' trong khi tiêu đề của mỗi phần là ' name. 'Dưới đây là hai ví dụ về dữ liệu từ các trang 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>
Cuối cùng, tôi muốn có một lớp cho CPU (đã được thiết lập) bao gồm loại Thương hiệu, Dòng, Lõi và Ổ cắm để lưu trữ từng dữ liệu. Đây là cách duy nhất tôi có thể nghĩ ra để làm điều này:
if(parsedDocument.xpath(tr/td[@class="name"])=='Brand'):
CPU.brand = parsedDocument.xpath(tr/td[@class="name"]/nextsibling?).text
Và làm điều này cho các giá trị còn lại. Làm cách nào để thực hiện việc phân loại nextsibling và có cách nào dễ dàng hơn để thực hiện việc này không?
td[@class='name']
sẽ bị phá vỡ. Xem câu hỏi này để biết chi tiết.