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,这是我的第一个问题。我试图通过scrapy获取网页的数据 <dl class="pairing"> <dt class="attribute" title="Maridaje">Maridaje:</dt> <dd> </dl> <dl> <dl> <dt class="attribute" title="Vol. de alcohol">Vol. De Alcohol:

这是我的第一个问题。我试图通过scrapy获取网页的数据

<dl class="pairing">
     <dt class="attribute" title="Maridaje">Maridaje:</dt>
     <dd>
</dl>
<dl>
<dl>
     <dt class="attribute" title="Vol. de alcohol">Vol. De Alcohol:</dt>
     <dd>14%</dd>
</dl>
但这只给了我所有同名课程的标题

多谢各位

多个选项:

  • 按XPath中的索引(基于1):
    /*[@class=“attribute”][1]/text()
  • 如果所需元素是第一个元素,请使用
    extract\u first()

    response.xpath('.//*[@class="attribute"]/text()').extract_first()
    
  • 通过Python中的索引(基于0),获得第二个匹配项:

    response.xpath('.//*[@class="attribute"]/text()').extract()[1]
    
  • 检查父项:
    //dl[@class=“pairing”]/dt[@class=“attribute”]/text()

  • 检查
    title
    属性:
    /*[@class=“attribute”和@title=“Maridaje”]/text()

非常感谢//*[@class=“attribute”和@title=“Maridaje”]/text()是我要找的
response.xpath('.//*[@class="attribute"]/text()').extract()[1]