微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python爬虫笔记二

构建新的请求实现翻页

关于spider源码

一个request返回一个response,parse是response认的回调函数,每一个response都有parse函数,但parse中返回的所有item都使用同一个管道对象

 

 

正式开始:

两种方法:1.拼接url,2.找到翻页连接

1.拼接url

baseurl 基础url

offset 偏移量

baseurl和offset拼接实现

表示所有符合一个或后一个的元素,如果是同一个父元素下的两个子元素用or

parse函数中for循环结束后表示当前这一页的所有连接已经全部处理完,

令offset偏移,再拼接

1 yield scrapy.Request(url,callback = self.parse)

关键:产生新的request请求,返回的response对象仍然调用parse

yield和for中yield作用:

将对象传递给引擎,引擎判断是item,则交给管道处理,是request请求,则交给调度器,进入队列产生response

事实上,爬虫文件只能产生这两个对象。

对yield 的理解:

类似于return,但不会打断下面代码的执行,而是返回后继续执行当前代码,这里调用spider的就是引擎,所以返回给引擎了

(ps:yield 下次调用时会在这个位置继续执行?

  eg.:for循环中对第一个node,yield item之后进管道,下一次进入这个函数时从这里继续执行?

    最后一个  yield scrapy.Request(url,callback = self.parse) 这里response回调时怎么做?)

3个小时,因为编码,想死

1 self.f = open("myscrapy.json","w",encoding='utf-8')

写你吗比博客,就这吧

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐