免责声明:scrapy新手。在
我有一个表,它的行很不规则,基本结构是:
<tr>
<td> some text </td>
<td> some other text </td>
<td> yet some text </td>
</tr>
但偶尔(几百次)有些行
^{pr2}$或由1或2个嵌套的“p”“div”和“span”组成的其他排列,包含或不包含返回行字符。在
我已经处理了嵌套的“span span”或“p div”或“div span”,条件语句的形式如下:
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']。有什么诀窍可以抓住换行符后面的内容吗?在
有什么建议吗。谢谢。在
可以使用
XPath
表达式中的string()
函数在一个字符串中获取所有内部文本节点:或
^{pr2}$//text()
获取所有内部text
节点:和
''.join(...)
以获取字符串:相关问题 更多 >
编程相关推荐