当\ d不返回任何值时,如何告诉re返回所有数字?

时间:2020-02-29 23:08:37

标签: python scrapy python-3.6

def parse(self, response):
    for line in response.css('small'):
        yield {
            'seats': line.css('*').get().re('\d')
        }

此代码将文件放入文件中

但是此代码:

def parse(self, response):
    for line in response.css('small'):
        yield {
            'seats': line.css('*').get()
        }

(相同,但没有re)

在文件中放入很多东西,包括很多数字。那么为什么第一个代码不给我数字呢?

1 个答案:

答案 0 :(得分:1)

在第一个示例中,您错误地组合了get()re()方法。 re()Selector的一种方法,而get()从选择器返回文本数据。因此,您需要将re()应用于选择器本身:

def parse(self, response):
    for line in response.css('small'):
        yield {
            'seats': line.css('*').re(r'\d+')
        }

另外,请注意将原始字符串r'\d+'用于正则表达式模式,并将\d+作为实际模式来返回所有数字。