美文网首页
爬虫三:scrapy入门

爬虫三:scrapy入门

作者: 爱跑步的coder | 来源:发表于2018-06-02 09:58 被阅读0次

    介绍

    scrapy主要具有两大功能,爬取网站和提取结构化信息。如果说普通的爬虫库是爬虫的利器,那它就是神器,因为它可能方便的爬取整个网站的数据。

    import scrapy
    
    class QuotesSpider(scrapy.Spider):
        name = 'quotes'
        start_urls = ['http://quotes.toscrape.com/tag/humor/', ]
    
        def parse(self, response):
    
            for quote in response.xpath('//div[@class="quote"]'):
                #print quote.xpath('span[@class="text"]/text()').extract_first()
                #print quote.xpath('small//text()').extract_first()
    
                yield {
                    'title' : quote.xpath('span[@class="text"]/text()').extract_first(),
                    'author': quote.xpath('small//text()').extract_first()
                }
    
            next_page_url = response.xpath('//li[@class="next"]/a/@href').extract_first()
            if next_page_url is not None:
                next_page_url = response.urljoin(next_page_url)
                yield response.follow(next_page_url, callback = self.parse) ###最后的yield不能忘记
    

    简单爬虫,通过scrapy runspider quotes_spider.py -o 1.csv即可。
    完整工程,需要startproject douban_crawl

    在item.py中定义数据容器中的数据域。
    item.py

    import scrapy
    
    class DoubanSpiderItem(scrapy.Item):
        # define the fields for your item here like:
        name = scrapy.Field()
        price = scrapy.Field()
        edition_year = scrapy.Field()
        publisher = scrapy.Field()
        ratings = scrapy.Field()
    

    在项目中的spiders的子文件夹新建一个spider文件,如douban_spider.py。

    scrapy会对抓取过的页面建立一个hash表,也就是不会抓取重复的URL。

    相关文章

      网友评论

          本文标题:爬虫三:scrapy入门

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