美文网首页
爬虫实战练习 - 2 - 用Scrapy进行爬取

爬虫实战练习 - 2 - 用Scrapy进行爬取

作者: AllenBigBear | 来源:发表于2019-06-02 22:52 被阅读0次

    Scrapy是现在应用最为广泛的爬虫框架了,所以我也学习一下基础地使用这个框架。

    1:安装及创建环境

    安装还是在pycharm下面进行安装
    然后用命令scrapy startproject tutorial来进行项目创建
    然后,你自己编写的爬虫内容(我这里是quotes_spider),放在spider文件夹下
    整个项目内结构如下

    文件结构

    2:编写程序

    import scrapy
    
    class QuotesSpider(scrapy.Spider):
        #name的作用是定义这个爬虫的名字,在命令行执行的时候可以直接用这个名字而不需要执行py文件
        name = 'quotes'
        #这里其实是重写了start_requests方法,不用额外写start_urls了
        def start_requests(self):
            #重写这个函数
            urls =[
                'http://quotes.toscrape.com/page/1/',
                'http://quotes.toscrape.com/page/2/',
            ]
            #遍历urls里面所有的地址,并通过回调函数来取回爬到的参数
            for url in urls:
                yield scrapy.Request(url=url,callback=self.parse)
        #定义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(),
                    'tags':quote.css('div.tags a.tag::text').extract(),
                }
    

    3:运行爬虫

    scrapy crawl quotes -o quotes.json
    至此,爬取的结果就保存在了quotes.json文件里,内容如图

    爬取结果

    说实话,为了搞清楚start_requests和parse函数里面的yield原理,起码看了50+的网页。包括了一定量的源码解析,不过还不是特别的清楚,只能说知道了50%。
    参考资料如下:
    https://www.cnblogs.com/tuohai666/p/8879765.html
    http://kaito-kidd.com/tags/%E7%88%AC%E8%99%AB/
    https://piaosanlang.gitbooks.io/spiders/09day/scrapyyuan-ma-jie-xi-ff08-si-ff09.html

    相关文章

      网友评论

          本文标题:爬虫实战练习 - 2 - 用Scrapy进行爬取

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