使用爬蟲參數(shù)

你可以使用你的爬蟲提供命令行參數(shù),當爬蟲運行時通過使用-a選項:

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

這些參數(shù)將會傳遞給爬蟲的__init__方法同時默認設定為爬蟲的屬性,在此例子中,傳遞給tag的參數(shù)將會傳遞給self.tag(實例中的tag)。你可以使用此方法使你的爬蟲只爬取指定的標簽,基于參數(shù)構建的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參數(shù),你將會發(fā)現(xiàn)爬蟲只訪問URLs中的humor標簽,比如說是http://quotes.toscrapy.com/tag/humor。

你可以在這里學習更多關于爬蟲參數(shù)設置的內容(P35)。

下一步

此教程僅僅講了一些Scrapy的基礎,同時還有許多其他的功能特性還未提到。訪問在Scarpy at glance中的更多內容(P7)來瀏覽概述更重要的部分。

你可以繼續(xù)從章節(jié)基礎概念來學習更多關于命令行工具、爬蟲、選擇器和其他在此教程中沒有提到的像是建立爬蟲數(shù)據(jù)結構模型。如果你更喜歡從例子中學習的話,請訪問例子(21)章節(jié)。

例子

最好的學習方法是舉例子,對于Scrapy的學習也不例外。由于這樣我們提供一個名為quotesbot額項目例子來讓你操作和學習關于Scrapy更多的內容。為爬取http://quotes.toscrape.com,它包括了兩只爬蟲,一只使用CSS選擇器,另一只使用Xpath表達式。

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

如果熟悉git語法的話你可以檢出代碼。否則你可以下載其壓縮文件

  • Scrapy at glance 理解ScrapyScrapy如何幫助你爬取網(wǎng)頁內容
  • Installation guideScrapy下載到你的計算機中
  • Scrapy Tutorial 編寫你的第一個爬蟲項目
  • ExampleScrapy成品項目中學習操作
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容