scrapy for循环yield
时间: 2023-09-23 18:11:02 浏览: 224
Scrapy爬虫实例讲解_校花网
在 Scrapy 中,可以使用 for 循环来遍历爬取到的数据,并使用 yield 语句将其返回。这种方式通常被称为基于回调的异步编程模型。
下面是一个简单的示例代码,演示了如何使用 for 循环和 yield 返回数据:
```python
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://www.example.com']
def parse(self, response):
# 获取所有的 <a> 标签
for link in response.css('a'):
# 提取链接和文本
url = link.css('::attr(href)').get()
text = link.css('::text').get()
# 返回一个字典,包含链接和文本
yield {'url': url, 'text': text}
```
在上面的代码中,我们定义了一个名为 MySpider 的 Spider,它会从 http://www.example.com 开始爬取。在 parse 方法中,我们使用 CSS 选择器获取所有的 <a> 标签,并使用 for 循环遍历它们。在循环中,我们提取链接和文本,并将它们包装在一个字典中,最后使用 yield 语句返回。
当 Scrapy 运行这个 Spider 时,它会逐个调用 parse 方法,并处理每个返回的字典。可以在其他地方使用这些数据,例如将它们保存到数据库中或写入文件。
阅读全文