粗糙的xpath h

2024-09-21 00:59:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我的蜘蛛需要对我正在抓取的站点有一定的适应性,因为我需要获取的信息有时在div[1]中,有时在div[2]中。下面是一个例子:

item['details'] = site.select('//*[@id="detailFacts"]/div[2]/div[2]//text()').extract()

或者

^{pr2}$

如何在一个语句中同时使用这两个语句,以便scrapy从这两个语句中提取我?在


Tags: textdiv信息id站点siteextract语句
1条回答
网友
1楼 · 发布于 2024-09-21 00:59:26

试试这个:

details = site.select('//*[@id="detailFacts"]/div[1]/div[2]//text()|//*[@id="detailFacts"]/div[2]/div[2]//text()').extract()
item['details'] = next(s for s in details if s)  # getting first not-empty item from the list

或者

^{pr2}$

希望对你有用。在

相关问题 更多 >

    热门问题