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()
我正在尝试抓取 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 的 src
属性并抓取此 url 而不是问题中的 url。那么你可以这样做:
response.css('div#ds_div p::text').get()