刚刚的程序代码中到底发生了什么事?

Scrapy调用了scrapy.Resquest类中Spider(爬虫)的start_requests方法。根据每条链接返回的响应,每条链接实例化为Response的类同时调用了定义的parse()方法把响应作为参数传递。

使用start_requests方法的捷径

你只需要用一列的URLs(链接)定义start_urls类实例的属性,由URLs(链接)中生成scrapy.Response项目(实例)而不是去执行start_requests()方法。这一列表URLs(链接)将会被默认执行start_requests()方法来为你的爬虫创建初始化请求。

    import scrapy
    
    class QuotesSpider(scrapy.Spider):
        name = "quotes"
        start_urls = [
                 'http://quotes.toscrape.com/page/1/',
                 'http://quotes.toscrape.com/page/2/',
             ]
        
        def parse(self, response):
            page = response.url.split("/")[-2]
            filename = 'quotes-%s.html' % page
            with open(filename, 'wb') as f:
                f.write(response.body)

parse()方法将会被调用来处理每一条URLs(链接),即使我们没有特别要求scrapy去做,这一执行是因为parse()是Scarpy的默认调用方法,parse()方法时处理请求的链接没有特别的返回参数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • scrapy学习笔记(有示例版) 我的博客 scrapy学习笔记1.使用scrapy1.1创建工程1.2创建爬虫模...
    陈思煜阅读 14,379评论 4 46
  • Python版本管理:pyenv和pyenv-virtualenvScrapy爬虫入门教程一 安装和基本使用Scr...
    inke阅读 35,776评论 7 93
  • scrapy是python最有名的爬虫框架之一,可以很方便的进行web抓取,并且提供了很强的定制型,这里记录简单学...
    bomo阅读 6,549评论 1 11
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,092评论 19 139
  • 无题 满城秋色栾花黄 一径清新桂子香 馨香袅袅盈满袖 花雨簌簌随风来 陷入街角污水中 一曲《葬花》在心怀 正道群主...
    为为道来阅读 3,552评论 0 0

友情链接更多精彩内容