【发布时间】:2015-02-11 15:08:33
【问题描述】:
我有这个 html:
<div id="content">
<h1>Title 1</h1><br><br>
<h2>Sub-Title 1</h2>
<br><br>
Description 1.<br><br>Description 2.
<br><br>
<h2>Sub-Title 2</h2>
<br><br>
Description 1<br>Description 2<br>
<br><br>
<div class="infobox">
<font style="color:#000000"><b>Information Title</b></font>
<br><br>Long Information Text
</div>
</div>
我想在 Scrapy 中使用 XPath 获取 <div id="content"> 中的所有文本,但不包括 <div class="infobox"> 的内容,所以预期的结果是这样的:
Title 1
Sub-Title 1
Descripton 1.
Descripton 2.
Sub-Title 2
Descripton 1.
Descripton 2.
但是我还没有达到排除部分,我还在努力从<div id="content">中抓取文字。
我试过这个:
response.xpath('//*[@id="content"]/text()').extract()
但它只从两个子标题返回 Description 1. 和 Description 2.。
然后我尝试了:
response.xpath('//*[@id="content"]//*/text()').extract()
它只返回Title 1、Sub-Title 1、Sub-Title 2、Information Title和Long Information Text。
所以这里有两个问题:
- 如何从
contentdiv 获取所有儿童文本? - 如何从选择中排除
infoboxdiv?
【问题讨论】: