Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Xpath查询中生成或设置条件_Xpath_Scrapy - Fatal编程技术网

如何在Xpath查询中生成或设置条件

如何在Xpath查询中生成或设置条件,xpath,scrapy,Xpath,Scrapy,我有两种不同类型的html代码: 我的第一个代码是: <div class="course-general-info hide-for-medium-up"> <!-- TODO: check date format here --> <div class="headline"><strong>2014-01-27</strong></div> <div class="subline">Course st

我有两种不同类型的html代码:

我的第一个代码是:

<div class="course-general-info hide-for-medium-up">
<!-- TODO: check date format here -->
  <div class="headline"><strong>2014-01-27</strong></div>
  <div class="subline">Course start</div>
  <div class="headline"><strong>2014-04-27</strong></div>
  <div class="subline">Course end</div>
<div class="headline">Basis</div>
<div class="subline">Level</div>
</div>

请帮助在Xpath查询中编写或设置条件。提前感谢….

假设两个
div中只有一个同时出现,则应该这样做:

(//div[@class = "headline"]/strong | 
 //div[@class = "headline" and not(strong)])[1]/text()
一艘班轮

div[@class='course-general-info hide-for-medium-up']/div[@class='headline'][1]/descendant::text()

我尝试了以下Xpath查询,它对我很有效:

courseDurationDate = courseDetailData.xpath('//div[@class = "course-general-info hide-for-medium-up"]/div[@class = "headline"]/strong/text() | \
                                                 //div[@class = "course-general-info hide-for-medium-up"]/div[@class = "headline" and not (strong)][1]/text()').extract()
div[@class='course-general-info hide-for-medium-up']/div[@class='headline'][1]/descendant::text()
courseDurationDate = courseDetailData.xpath('//div[@class = "course-general-info hide-for-medium-up"]/div[@class = "headline"]/strong/text() | \
                                                 //div[@class = "course-general-info hide-for-medium-up"]/div[@class = "headline" and not (strong)][1]/text()').extract()