在xpath语句上设置条件

时间:2019-01-08 00:03:27

标签: python-3.x xpath scrapy css-selectors

我正在使用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()

2 个答案:

答案 0 :(得分:2)

此XPath,

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

将选择所有div个元素,其子元素h3的{​​{1}}属性值为@class

答案 1 :(得分:1)

  

如果有一种方法只能从font_grey类中选择父div

尝试使用此xpath //*[@class='font_grey]/..

说明:

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