在 xpath 语句上设置条件



我正在使用scrapy抓取一个网站,并且只想从灰色的链接中获取数据,我已经通过针对灰色元素的css类来完成。我面临的问题是第二个 xpath /div[1]/text()是从活动的元素中选择元素,因此当我的列表返回时,我有列表中不活跃的公司的地址。

我想知道的是是否有办法仅从类font_grey中选择父div。我确实尝试使用parent::text()但返回了一个空值。

<div onclick="" class="col-md-5 border_right maxhelem ">
<h3 class="font_grey">Kost A/S</h3>
501&nbsp;Give St
</div>
response.xpath('//*[@id="main_wrapper"]/main/div/div/div/div[4]/div/div/div[2]/div[2]/div/div/div/div/div/div/h3[@class="font_grey"]/text() |  //*[@id="main_wrapper"]/main/div/div/div/div[4]/div/div/div[2]/div[2]/div/div/div/div/div/div[1]/text()').extract()

这个 XPath,

//div[h3/@class = "font_grey"]

将选择具有@class属性值为 "font_grey" 的子元素的所有div元素h3

如果有办法只从类中选择父div font_grey

试试这个 xpath //*[@class='font_grey]/..

解释:

//* - 任何级别的
任何元素 [@class='font_grey'] - 其中类属性等于"font_grey"
/.. - 选择父级

最新更新