关于filter

来源:6-14 item loder方式提取question - 1

慕雪0299990

2020-05-12

请问这条代码有问题吗,我是3.7的python,打断点看前面可以提取出https开头的url,但是到这里过滤一下就为none了。

# all_urls = filter(lambda x: True if x.startswith("https") else False, all_urls)


写回答

3回答

bobby

2020-05-15

//img.mukewang.com/szimg/5ebe5813094c328e13480831.jpg 你这里看起来对象不是none啊

0
2
bobby
回复
慕雪0299990
好的,
2020-05-17
共2条回复

慕雪0299990

提问者

2020-05-14

1、执行filter之前:

//img.mukewang.com/szimg/5ebd16ca09f083f722240609.jpg

2、到filter那个断点后:

//img1.sycdn.imooc.com/szimg/5ebd170a0858ace621171065.jpg

0
0

bobby

2020-05-14

all_urls = ["https://baidu.com", "http://www.baidu.com", "https://www.taobao.com"]
all_urls = filter(lambda x: True if x.startswith("https") else False, all_urls)
for url in all_urls:
    print(url)

没问题

0
1
慕雪0299990
all_urls = response.xpath('//a/@href').extract() all_urls = [parse.urljoin(response.url, url) for url in all_urls] all_urls = filter(lambda x: True if x.startswith("https") else False, all_urls) 我是这样的,在filter以前一切都正常,我把截图放下头哈
2020-05-14
共1条回复

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5796 学习 · 6290 问题

查看课程