0
我正在嘗試構建一個解析器,它將從包含藥物信息的表格中刮取數據,例如藥物名稱,表單和價格。問題在於有些值在那裏丟失,所以當我刮取數據時會受到干擾。請看下面,以更好地理解問題。從表格中颳去空字段
表形式:
+---------+----------+-------+
| name | form | price |
+---------+----------+-------+
| aspirin | 3 pills | 1 |
| aspirin | 5 pills | |
| aspirin | 10 pills | 3 |
+---------+----------+-------+
每一個價格區域是一個HTML鏈接,所以這個表的HTML看起來像這樣:
<table>
<tr>
<td>name</td>
<td>form</td>
<td>price</td>
</tr>
<tr>
<td>aspirin</td>
<td>3 pills</td>
<td><a href="http://x.html">1</a></td>
</tr>
<tr>
<td>aspirin</td>
<td>5 pills</td>
<td></td>
</tr>
<tr>
<td>aspirin</td>
<td>10 pills</td>
<td><a href="http://x.html">3</a></td>
</tr>
</table>
什麼來提取這一價格領域的最佳方法包括空欄位,以此形式返回項目: ['1','','3']。當使用xpath「// table/tr/td [3]/a/text()」時,空字段被省略,我得到這個:['1','3']。
我在考慮使用這個xpath:「// table/tr/td [3] /」來抓取數據,然後在管道中對其進行轉換。不過,我希望有一些simplier解決這個,使我從原來的網站抓取數據更comlicated了一下,結果我得到這個:
[u'<td>\r\n\t\t\t\t</td>',
u'<td>\r\n\t\t \r\n \t\t\t\t\t<a class="tooltip-lek" href="#" rel="#tooltip169815" title="Odp\u0142atno\u015b\u0107 po refundacji">3.20</a>\xa0\xa0\xa0\r\n\t\t\t<div style="display:none;" id="tooltip169815">\r\n\t\t\t\t<table>\r\n\t\t\t\t<tbody>\r\n\t\t\t\t\r\n\t\t\t\t<tr>\r\n\t\t\t\t<td style="padding-right:5px;">lek wydawany za odp\u0142atno\u015bci\u0105 rycza\u0142tow\u0105 (3,20 z\u0142) do wysoko\u015bci limitu:</td>\r\n\t\t\t\t<td>we wskazaniach: choroba afektywna dwubiegunowa, schizofrenia</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t\r\n\t\t\t\t</tbody>\r\n\t\t\t\t</table>\r\n\t\t\t</div>\r\n\t\t\t\t\t\t\t</td>',
u'<td>\r\n\t\t\t\t</td>']
謝謝您的回答。提供的soltuion有效,但只是部分。結果在一個真實的例子中,我得到這個:[u'\ r \ n \ t \ t \ t \ t', u'\ r \ n \ t \ t \ r \ n \ t \ t \ t \噸\ t3.20 \ XA0 \ XA0 \ XA0 \ r \ n \噸\噸\噸\ r \ n \噸\噸\噸\噸\ r \ n \噸\噸\噸\噸\ r \ n \ t \ t \ t \ t \ r \ n \ t \ t \ t \ t \ r \ n \ t \ t \ t \ tlek wydawany za odp \ u0142atno \ u015bci \ u0105 rycza \ u0142tow \ u0105(3,20 z \ u0142)do wysoko \ u015bci limitu:\ r \ n \ t \ t \ t \ twe wskazaniach:choroba afektywna dwubiegunowa,schizofrenia \ r \ n \ t \ t \ t \ r \ n \ t \ t \ t \噸\ r \ n \噸\噸\噸\噸\ r \ n \噸\噸\噸\噸\ r \ n \噸\噸\噸\ r \ n \噸\噸\噸\噸\噸\ t \ t', u'\ r \ n \ t \ t \ t \ t']仍然需要很多格式化。 –
也許webstie的源代碼將是有用的:[鏈接](http://bazalekow.mp.pl/leki/item.html?id=22369&item_id=81272) –
使用您的示例頁面我建議你嘗試'[u ''.join(cell.xpath('./ a/text()| ./text()')。extract())。strip() for sel.xpath('// // // tr/td [5]')]' –