我正在尝试抓取产品(这并不奇怪)--但老实说,为任何产品页面上的产品描述定义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)
# 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选择器匹配产品描述?
1条答案
按热度按时间kyxcudwk1#
使用XPath选择器(获取
div
,其类等于pd_description
,其中包含文本为Produktbeschreibung
的h4
):