Python 如何使用Scrapy和Xpath刮取多个元素?

Python 如何使用Scrapy和Xpath刮取多个元素?,python,xpath,scrapy,css-selectors,tuples,Python,Xpath,Scrapy,Css Selectors,Tuples,我正试图浏览一个网站。我需要得到一个产品的名称和它的参考。我正在从中抓取的html是: 爬行器需要生成一个带有产品名称及其区号的元组。目前,我可以使用富灵Xpath选择器“//li/a[@href]/text()”来刮取项目名称,但我不知道如何同时生成区号 感谢您的帮助尝试使用此xpath表达式来清除区号 //li/a/@data-code 要同时获取区号和项目名称,请尝试以下表达式: //li/a[@href]/(@data-code,text())/string() 试试这个。这将以

我正试图浏览一个网站。我需要得到一个产品的名称和它的参考。我正在从中抓取的html是:
  • 爬行器需要生成一个带有产品名称及其区号的元组。目前,我可以使用富灵Xpath选择器“//li/a[@href]/text()”来刮取项目名称,但我不知道如何同时生成区号


    感谢您的帮助

    尝试使用此xpath表达式来清除区号

    //li/a/@data-code
    

    要同时获取区号和项目名称,请尝试以下表达式:

    //li/a[@href]/(@data-code,text())/string()
    

    试试这个。这将以
    [名称,区号]


    response.css('dropdown-element::text,dropdown-element::attr(数据代码)')).getall()
    您需要这样的东西才能产生元组:

    for el in response.css("li"):
        yield (el.css("a::text").extract_first(), el.css("a::attr(data-code)").extract_first()),
    

    非常感谢您的回复。Scrapy并没有叫出一个元组,事实上根本没有产生任何结果,我不知道我的spider或Xpath本身是否有问题。无论如何,感谢您抽出时间回答我的问题。@M.Cerv-不客气,很抱歉它没有起作用。您可能希望尝试的一件事是使用lxml(如果可用)和这个xpath表达式处理xml。感谢您的回复。对于任何有类似问题的人,我想指出,这个Xpath表达式会产生区号,但在我的例子中,我正在寻找一个同时产生区号和产品名称的表达式。尽管如此,我还是要感谢你的回复。