下面是HTML的样子:
<h4>Categories</h4>
<ul>
<li>Cars</li>
<li>Bikes</li>
<li>Planes</li>
</ul>
<h4>Brands</h4>
<ul>
<li>Audi</li>
<li>BMW</li>
<li>Mercedes</li>
</ul>
<h4>FAQ</h4>
<ul>
<li>FAQ1</li>
<li>FAQ2</li>
<li>FAQ3</li>
</ul>我只想用Scrapy提取品牌。除了H4开始新的部分外,品类与品牌之间没有区别的特性。此外,有许多类别和品牌,所以很难硬编码它。
发布于 2018-06-19 01:24:05
您可以使用following或following-sibling轴。
例如,为了获得品牌,您可以通过文本获得所需的h4元素,然后通过following-sibling获得下一个ul兄弟。
//h4[. = 'Brands']/following-sibling::ul[1]/li/text()来自Scrapy外壳的演示:
$ scrapy shell ./index.html
>>> response.xpath("//h4[. = 'Brands']/following-sibling::ul[1]/li/text()").extract()
['Audi', 'BMW', 'Mercedes']https://stackoverflow.com/questions/50919287
复制相似问题