首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scrapy有select()方法吗?

问Scrapy有select()方法吗?
EN

Stack Overflow用户
提问于 2015-05-28 16:24:16
回答 1查看 251关注 0票数 1

在运行最新版本的Scrapy并使用HtmlXPathSelector进行Xpath提取时,我从日志中注意到,不推荐使用HtmlXPathSelector。

因此,在将所需的节点(我们称之为$myNode)更改为Selector实例而不是HtmlXPathSelector实例之后,我希望$myNode.select()会产生一个错误,因为根据API,Selector类只有一个xpath()方法,而不是select()方法。

然而,select()方法继续发挥作用。实际上,如果我对Selector实例执行一个dir(),那么select()就是这个类的一个方法。

这是API文档中的遗漏吗?还是故意忽略了让用户根据查询类型显式使用xpath()或css()?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-28 16:28:16

读读消息来源卢克!

当您不确定时,请查看源代码。select()标记为“弃用”,应该使用xpath():

代码语言:javascript
复制
@deprecated(use_instead='.xpath()')
def select(self, xpath):
    return self.xpath(xpath)

这是为了更顺利地过渡到新的Scrapy版本而故意这样做的。

注意,从0.24.0开始,Scrapy回调中可用的response变量有Selector的方法快捷方式:

代码语言:javascript
复制
def parse(self, response):
    response.xpath("//title/text()")
    response.css("div.content")

相关问题:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30512126

复制
相关文章

相似问题

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