美文网首页
使用爬虫参数

使用爬虫参数

作者: 没有车胎的战车 | 来源:发表于2017-11-18 11:04 被阅读0次

    你可以使用你的爬虫提供命令行参数,当爬虫运行时通过使用-a选项:

        $  scrapy crawl quotes -o quotes-humor.json -a tag=humor
    

    这些参数将会传递给爬虫的__init__方法同时默认设定为爬虫的属性,在此例子中,传递给tag的参数将会传递给self.tag(实例中的tag)。你可以使用此方法使你的爬虫只爬取指定的标签,基于参数构建的URL中。

        import scrapy
    
        class QuotesSpider(scrapy.Spider):
            name = "quotes"
    
            def start_requests(self):
                url = 'http://quotes.toscrapy.com/'
                tag = a.getarrt(self,'tag',None)
                if tag is not None:
                   url = url + 'tag/' + tag
                yield scrapy.Request(url,self.parse)
    
            def parse(self, response):
                for quote in response.css('div.quote'):
                    yield{
                        'text':quote.css('span.text::text').extract_first(),
                        'author':quote.css('small.author::text').extract_first(),
                   }
    
                next_page = response.css('li.next a::attr(href)').extract_first()
                if next_page is not None:
                   yield response.follow(next_page, self.parse)
    

    如果你向爬虫传递tag=humor参数,你将会发现爬虫只访问URLs中的humor标签,比如说是http://quotes.toscrapy.com/tag/humor

    你可以在这里学习更多关于爬虫参数设置的内容(P35)。

    下一步

    此教程仅仅讲了一些Scrapy的基础,同时还有许多其他的功能特性还未提到。访问在Scarpy at glance中的更多内容(P7)来浏览概述更重要的部分。

    你可以继续从章节基础概念来学习更多关于命令行工具、爬虫、选择器和其他在此教程中没有提到的像是建立爬虫数据结构模型。如果你更喜欢从例子中学习的话,请访问例子(21)章节。

    例子

    最好的学习方法是举例子,对于Scrapy的学习也不例外。由于这样我们提供一个名为quotesbot额项目例子来让你操作和学习关于Scrapy更多的内容。为爬取http://quotes.toscrape.com,它包括了两只爬虫,一只使用CSS选择器,另一只使用Xpath表达式。

    qutoesbot项目在http://github.com/scrapy/quotesbot中,你可以在README*了解其基本内容。

    如果熟悉git语法的话你可以检出代码。否则你可以下载其压缩文件

    • Scrapy at glance 理解ScrapyScrapy如何帮助你爬取网页内容
    • Installation guideScrapy下载到你的计算机中
    • Scrapy Tutorial 编写你的第一个爬虫项目
    • ExampleScrapy成品项目中学习操作

    相关文章

      网友评论

          本文标题:使用爬虫参数

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