美文网首页
爬虫三: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