关于spIDer源码
每一个request返回一个response,parse是response默认的回调函数,每一个response都有parse函数,但parse中返回的所有item都使用同一个管道对象
正式开始:
两种方法:1.拼接url,2.找到翻页连接1.拼接urlbaseurl 基础url
offset 偏移量
baseurl和offset拼接实现
表示所有符合一个或后一个的元素,如果是同一个父元素下的两个子元素用orparse函数中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')
写你吗比博客,就这吧
总结以上是内存溢出为你收集整理的python爬虫笔记(二)全部内容,希望文章能够帮你解决python爬虫笔记(二)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)