美文网首页
刚刚的程序代码中到底发生了什么事?

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

作者: 没有车胎的战车 | 来源:发表于2017-10-31 19:32 被阅读0次

    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()方法时处理请求的链接没有特别的返回参数。

    相关文章

      网友评论

          本文标题:刚刚的程序代码中到底发生了什么事?

          本文链接:https://www.haomeiwen.com/subject/ccuauxtx.html