只想剪贴]内的文本> 不带空格和栏杆 我正在使用xpath,我想从以下URL抓取:https://www.le-dictionnaire.com/definition/tout' 我正在使用此代码,但它带来了空格,换行和ul的平衡效果: def parse(self, response): print("procesing:"+response.url) #Extract data using css selectors #product_name=response.css('.product::text').extract() #price_range=response.css('.value::text').extract() #Extract data using xpath title = response.xpath("//b/text()").extract() genre1 = response.xpath("(//span/text())[2]").extract() def1 = response.xpath("((//*[self::ul])[1])").extract() genre2 = response.xpath("(//span/text())[3]").extract() def2 = response.xpath("((//*[self::ul])[2])").extract() row_data=zip(title,genre1,def1,genre2,def2) #Making extracted data row wise for item in row_data: #create a dictionary to store the scraped info scraped_info = { #key:value 'page':response.url, 'title' : item[0], #item[0] means product in the list and so on, index tells what value to assign 'genere1' : item[1], 'def1' : item[2], 'genere2' : item[3], 'def2' : item[4], } #yield or give the scraped info to scrapy yield scraped_info 当我添加标签text()时> def1 = response.xpath("((//*[self::ul])[1]/text())").extract() def2 = response.xpath("((//*[self::ul])[2]/text())").extract() 它只刮擦空格。 [我正在使用xpath,我想从以下URL抓取:https://www.le-dictionnaire.com/definition/tout'我正在使用此代码,但它带来了空格,换行和平衡ul:def parse(self,...

问题描述 投票:-1回答:1

我正在使用xpath,我想从以下URL抓取:https://www.le-dictionnaire.com/definition/tout'

python xpath web-scraping scrapy
1个回答
1
投票

发生这种情况是因为您想要的文本不是<ul>标记的直接子代,因此使用/text()将返回直接子代(或简称为子代)文本。您需要从<ul>标签的大子级中获取文本,这是您要抓取的文本。为此,您可以使用//text()而不是/text或缩小XPath表达式的范围,例如:

"//*[@class='defbox'][n]//ul/li/a/text()"
© www.soinside.com 2019 - 2024. All rights reserved.