哦,不- Scrapy CSS选择器在产品详细信息页面上使用了几次?

yebdmbv4  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(165)

我正在尝试抓取产品(这并不奇怪)--但老实说,为任何产品页面上的产品描述定义CSS选择器让我很头疼。
我从以下链接中查找定义产品说明的选择器:
https://www.onlinebaufuchs.de/Werkzeug-Technik/Elektrowerkzeuge/Akku-Geraete/Akku-Schlagschrauber/Guede-Akku-Schlagschrauber-BSS-18-1-4-Zoll-0-Akkuschrauber-ohne-Akku-Ladegeraet::7886.html
选择器为:


# inner > div > div.col-lg-12-full.col-md-12-full > div:nth-child(1) > div:nth-child(12)

或者,选择器可以是:

div.pd_description:nth-of-type(6)

但有时选择器会发生变化:
https://www.onlinebaufuchs.de/Werkzeug-Technik/Elektrowerkzeuge/Akku-Geraete/18-Volt-Lithium-Ionen-Akkusystem/Guede-Ladegeraet-LG-18-05-0-5-A-Aufladegeraet-fuer-diverse-Guede-Akku-Werkzeuge::7852.html
下面是选择器:


# inner > div > div.col-lg-12-full.col-md-12-full > div:nth-child(1) > div:nth-child(11)

或者,选择器可以是:

div.pd_description:nth-of-type(5)

当我查看源代码时,产品描述部分是用

.pd_description

但是它太通用了,经常在其他部分的源代码中使用。
我想不出如何解决这个问题。
我的蜘蛛运行正确,但从一个产品到另一个产品,我得到空的描述(导致我描述的问题)。

def parse_product(self, response):
  for product in response.css("body"):
     yield {
     "brand": product.css('div.pd_inforow:nth-of-type(4) span::text').extract(),
     "item_name": product.css("h1::text').extract(),
     "description": product.css('#inner > div > div.col-lg-12-full.col-md-12-full > div:nth-child(1) > div:nth-child(12)').extract_first

为什么我不能在所有页面上使用CSS选择器匹配产品描述?

kyxcudwk

kyxcudwk1#

使用XPath选择器(获取div,其类等于pd_description,其中包含文本为Produktbeschreibungh4):

product.xpath('.//div[@class="pd_description"][h4[.="Produktbeschreibung"]]').get()

相关问题