返回信息流- 对官网的范例,对yield 这个执行过程不是特别理解,
范例:
```Python
import scrapy
from myproject.items import MyItem
class MySpider(scrapy.Spider):
name = 'example.com'
allowed_domains = ['example.com']
start_urls = [
'http://www.example.com/1.html',
'http://www.example.com/2.html',
'http://www.example.com/3.html',
]
def parse(self, response):
sel = scrapy.Selector(response)
for h3 in response.xpath('//h3').extract():
yield MyItem(title=h3)
for url in response.xpath('//a/@href').extract():
yield scrapy.Request(url, callback=self.parse)
```
这里是不是先迭代完第一个for语句,再生成request进入下一个页面,再迭代第一个for语句?可以这样理解么?
这是一条镜像帖。来源:北邮人论坛 / python / #14951同步于 2016/7/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
[问题]求问scrapy 中回调函数 yield执行过程
wojing
2016/7/15镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
javascript大法好,不过最近在Python的某个版本见到了Promise简直受到了惊吓
话说,yield是把当前环境执行暂停,执行yield的函数,yield的函数返回时返回当前环境继续执行
【 在 reverland 的大作中提到: 】
: javascript大法好,不过最近在Python的某个版本见到了Promise简直受到了惊吓
: 话说,yield是把当前环境执行暂停,执行yield的函数,yield的函数返回时返回当前环境继续执行
这么说的话,应该跟我理解差不多
话说这全角英文看得我快散光了