2
免責聲明:新增scrapy。scrapy帶有換行符和嵌套標籤
我有一個表相當不規則的行,其基本結構是:
<tr>
<td> some text </td>
<td> some other text </td>
<td> yet some text </td>
</tr>
但偶爾(幾百倍)的某些行是
<tr>
<td> <p> some text <p> </td>
<td> <div class="class-whateva"> <p> some other text </p></div> </td>
<td> <span id="strange-id">
<a href="somelink"> yet some text </a>
<span> </td>
</tr>
或1或2的其他的排列嵌套「p」「div」和「span」有或沒有返回行字符。
我已經採取了嵌套的「跨跨度」或「P格」或「分區跨越」與形式的條件語句的護理:
for row in allrows:
if row.select('td[2]/text()'):
item['seconditem']=row.select('td[2]/text()').extract()
elif row.select('td[2]/*/text()'):
item['seconditem']=row.select('td[2]/*/text()').extract()
elif row.select('td[2]/*/*/text()'):
item['seconditem']=row.select('td[2]/*/*/text()').extract()
現在我有兩個問題:
(1)是否有條件
td[2]/*/*/text()
正確的方式去尋找不規則的嵌套行? (2)我仍然缺少標籤前有返回(或換行符)的所有情況。 因此,如果該行的形式爲:
<td><div>
<p>text </p>
</div></td>
我所有的XPath會返回一個[ '\ n']。捕捉換行符後的任何竅門?
任何提示讚賞。謝謝。
感謝reclosedev。我不知道select('string()')。它的作用像魅力。 – Massagran
@reclosedev你可以幫助解決這個問題http://stackoverflow.com/questions/37915573/how-to-extract-li-element-using-xpath-and-put-each-and-every-one-in-a -分離 – nand