首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用scrapy css选择器定位id

使用scrapy css选择器定位id
EN

Stack Overflow用户
提问于 2019-06-21 03:01:32
回答 3查看 1.4K关注 0票数 2
代码语言:javascript
复制
HTML = '
    <div class="box">
        <div id="grid">
            <div class="content">hello</div>
        </div>
    </div>
'

--这里发生的事情--

代码语言:javascript
复制
response.css('div.thread [*] div.mix').getall()

*如何搜索没有类的div?无论我在网上找到什么建议,我总是收到错误消息"expected got ...“

EN

回答 3

Stack Overflow用户

发布于 2019-06-21 08:59:55

您需要对id属性使用#

代码语言:javascript
复制
response.css('div#grid')

或者您可以通过属性表示法选择它:

代码语言:javascript
复制
response.css('div[id="grid"]')
票数 5
EN

Stack Overflow用户

发布于 2019-06-21 08:59:20

你可以试试这样的东西。逻辑是,它将查找None,如果检查没有类,则第一次检查失败,然后将其附加到no_class_divs列表。如果你想根据ID查找,那就接受@gangabass的答案。如果您想查找没有class属性的div元素,那么我的答案应该是有效的。

代码语言:javascript
复制
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)
票数 0
EN

Stack Overflow用户

发布于 2019-06-21 14:02:47

如果您想选择具有特定id的div,您可以按照其他答案的建议进行操作。

但是,如果要选择没有class属性的任何div,请使用:

代码语言:javascript
复制
.css('div:not([class])')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56692345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档