XPath:匹配两个相似标签之间的文本
XPath: Matching a text between two similar tags
我正在尝试抓取一个结构混乱的网站,我需要的文本位于前 5 个连续的 br 标签(不多也不少,正好是 5 个)和接下来的 2 个连续的 br 标签之间。
它看起来像这样:
<p class="A">
"Some text"
<br>
"Some text"
<br>
<br>
"Some text"
<br>
<br>
<br>
<br>
<br>
"Required text"
<br>
"Required text"
<br>
"Required text"
<br>
<br>
</p>
Scrapy 将 <br>
标签转换为换行符,因此您可以提取整个文本并将其拆分为 5 个换行符:
> text = sel.xpath('//text()').extract()
['\n"Some text"\n', '\n"Some text"\n', ...]
> values = ''.join(text).split('\n\n\n\n\n')[1]
'\n"Required text"\n\n"Required text"\n\n"Required text"\n\n\n'
> values.strip().split('\n\n')
['"Required text"', '"Required text"', '"Required text"']
我正在尝试抓取一个结构混乱的网站,我需要的文本位于前 5 个连续的 br 标签(不多也不少,正好是 5 个)和接下来的 2 个连续的 br 标签之间。
它看起来像这样:
<p class="A">
"Some text"
<br>
"Some text"
<br>
<br>
"Some text"
<br>
<br>
<br>
<br>
<br>
"Required text"
<br>
"Required text"
<br>
"Required text"
<br>
<br>
</p>
Scrapy 将 <br>
标签转换为换行符,因此您可以提取整个文本并将其拆分为 5 个换行符:
> text = sel.xpath('//text()').extract()
['\n"Some text"\n', '\n"Some text"\n', ...]
> values = ''.join(text).split('\n\n\n\n\n')[1]
'\n"Required text"\n\n"Required text"\n\n"Required text"\n\n\n'
> values.strip().split('\n\n')
['"Required text"', '"Required text"', '"Required text"']