HTML = ' <div class="box"> <div id="grid"> <div class="content">hello</div> </div> </div> '
--这里发生的事情--
response.css('div.thread [*] div.mix').getall()
sqserrrh1#
您需要对id属性使用#:
id
#
response.css('div#grid')
也可以通过属性表示法选择它:
response.css('div[id="grid"]')
zbq4xfa02#
你可以尝试这样的方法。逻辑是它会找到None,如果没有class,第一次if检查失败,然后把它附加到no_class_divs列表中。如果你想根据ID查找,那么接受@gangabass的答案。如果你想找到没有class属性的div元素,那么我的答案应该有效。
no_class_divs = [] divs = response.css("div") for div in divs: if div.css('::attr(class)').extract_first(): continue else: no_class_divs.append(div)
y1aodyip3#
如果您想选择具有特定id的div,可以按照其他答案的建议进行操作。但是,如果要选择任何没有class属性的div,请用途:
.css('div:not([class])')
v09wglhw4#
在Scrapy中也有Xpath方法。
response.xpath('//div[@id="grid"]/div/text()').get()
4条答案
按热度按时间sqserrrh1#
您需要对
id
属性使用#
:也可以通过属性表示法选择它:
zbq4xfa02#
你可以尝试这样的方法。逻辑是它会找到None,如果没有class,第一次if检查失败,然后把它附加到no_class_divs列表中。如果你想根据ID查找,那么接受@gangabass的答案。如果你想找到没有class属性的div元素,那么我的答案应该有效。
y1aodyip3#
如果您想选择具有特定id的div,可以按照其他答案的建议进行操作。
但是,如果要选择任何没有class属性的div,请用途:
v09wglhw4#
在Scrapy中也有Xpath方法。