Python:Scrapy 收集选择器子项的所有文本

Python: Scrapy Gathering All Text of Selectors Children

我正在尝试抓取 ebay 列表的描述,并且正在接近它:

 def parse_description(self, response):
        description = response.css('div#ds_div*::text').get()
        yield {
            "description": description
        }

我们的想法是抓取 .css('div#ds_div') 下所有标签的文本 但是我得到这个错误:

"Expected selector, got %s" % (peek,))
  File "<string>", line None
cssselect.parser.SelectorSyntaxError: Expected selector, got <DELIM '*' at 10>

示例URL我正在尝试抓取:https://www.ebay.co.uk/itm/Vintage-Toastmaster-Chrome-Toaster-Model-D182-4-Slice-Wide-Slot-Nos/114677725765?hash=item1ab3533a45:g:ui8AAOSw-jpgBbFS 我哪里错了?

错误是指选择器无效:

div#ds_div*::text

如果您在 div#ds_div* 之间放置一个 space,它是有效的,正如您在评论中提到的那样。

从 link 来看,另一个问题是您要检索的文本位于 ID 为 desc_ifr.

的 iframe 中

如果您想抓取此 iframe 中的内容,请查看 iframe 的 src 属性并抓取此 url 而不是问题中的 url。那么你可以这样做:

response.css('div#ds_div p::text').get()