這是我需要通過scrapy使用XPath抓取部分:如何將值分配給Xpath中的空節點?
<tr class="o"><td>Alabama</td><td><code>US.AL</code></td><td><code>US01</code></td><td>Ala.</td><td>-6~</td><td class="n">4,779,736</td><td class="n">133,916</td><td class="n">51,705</td><td>2</td><td>Montgomery</td><td>Alabamian</td><td>350-369</td></tr>
<tr class="e"><td>Alaska</td><td><code>US.AK</code></td><td><code>US02</code></td><td></td><td>-9~</td><td class="n">710,231</td><td class="n">1,530,700</td><td class="n">591,007</td><td>6</td><td>Juneau</td><td>Alaskan</td><td>995-999</td></tr>
我的XPath表達式是:
response.xpath('//tr[@class="o" or @class="e"][2]/descendant::*').extract()
但是有一個空節點在「阿拉斯加」。那就是在<code>
「US02」之後的<td>
節點。這在阿拉巴馬州不會發生。
當我使用表達式:
response.xpath('//tr[@class="o" or @class="e"][2]/descendant::*/text()').extract()
提取文本,這個空節點將被忽略。我不得不遵守格式。那麼如何將這個空節點設置爲空間?
順便說一句,任何人都可以有更好的解決方案來抓取scrapy中的這個頁面嗎?
http://www.statoids.com/uus.html
US.AL
US01
丙氨酸。-6〜US.AK
US02
-9 〜