专栏首页SeanCheney的专栏Scrapy1.4最新官方文档总结 1 介绍·安装安装

Scrapy1.4最新官方文档总结 1 介绍·安装安装

《Learning Scrapy》

现在,Scrapy的最新版本是1.4。

Scrapy的图标是个小刮铲 :)

Scrapy文档的中文版现在还是1.0的:http://scrapy-chs.readthedocs.io/zh_CN/latest/intro/tutorial.html

官方文档更新自然是最快的:https://docs.scrapy.org/en/latest/intro/tutorial.html

官方案例现在使用网站http://quotes.toscrape.com作为抓取源。这个网站是GoodReads.com(特别好的书评网站,Kindle用户肯定熟悉)和Scrapinghub合作的。多说一句,Scrapinghub提供了几个有用的产品,如下:

Scrapy Cloud是一个有限免费的云平台,可以部署爬虫进行定时爬取(免费一个并发进程)。Scrapy官网推荐过Scrapy Cloud。

Crawlera是代理插件,《Learning Scrapy》书里用到过,那时还是免费的,现在是收费的了。

最简单的Scrapy例子:

import scrapy #命名为quotes_spider.py

class QuotesSpider(scrapy.Spider):
    name = "quotes"
    start_urls = [
        'http://quotes.toscrape.com/tag/humor/',
    ]

    def parse(self, response):
        for quote in response.css('div.quote'):
            yield {
                'text': quote.css('span.text::text').extract_first(),
                'author': quote.xpath('span/small/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)

运行这个爬虫,输出为json格式:

scrapy runspider quotes_spider.py -o quotes.json

会得到一个quotes.json文件,如下:

爬取步骤分析: 1向start_urls发出请求,将响应作为参数传递给调回方法parse; 2 用CSS选择器循环抓取名人名言。寻找下一页的链接,规划下一个请求。

可以看出Scrapy的优点:请求是经过规划,然后异步执行的。所以,Scrapy不用等待请求完成,就可以发出另一个请求。如果某个请求受阻,其它请求仍然可以执行。

这样的话,Scrapy爬取的速度就可以很快。控制爬取速度,可以通过设置两个请求的间隔时间、设置域名或ip的并发请求数、或使用自动阻塞插件(AutoThrottle extension)。

Scrapy的其它特点:

  • 内建的CSS选择器和XPath表达式
  • 基于IPython交互式shell,方便编写爬虫和debug
  • 内建的文件导出和保存方法,格式多样JSON、CSV、XML
  • 健壮的编码支持
  • 扩展性强,可以使用signals和API(中间件、插件、管道)添加自定义功能
  • 多种用于处理session、cookies、HTTP认证、user-agent、robots.txt、抓取深度限制的中间件和插件
  • Scrapy内建Telnet console,可用于debug

安装

Scrapy现在支持Python 2.7 和 Python 3.3以上的版本。最方便的就是用pip安装:

pip install Scrapy

如果用的是Anaconda环境,官网还介绍了conda安装方法:

conda install -c conda-forge scrapy

官方推荐的是使用虚拟环境,这样可以减少冲突,使用gitbash(这里使用win7的shell不能正常deactivate,使用gitbash没问题):

pip install virtualenv

新建一个虚拟环境:

virtualenv test1

激活这个虚拟环境:

source activate test1

这时再安装Scrapy:

pip install Scrapy

安装的包就存储在 ..\test1\Lib\site-packages中了。

退出这个环境:

source deactivate

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 《Learning Scrapy》(中文版)0 序言

    Dimitris Kouzis – Loukas有超过15年的软件开发经历。同时他也参与到教学活动中,受众广泛。

    SeanCheney
  • 《Learning Scrapy》(中文版)第1章 Scrapy介绍HelloScrapy喜爱Scrapy的其它理由关于此书:目标和用法掌握自动抓取数据的重要性开发高可靠高质量的应用 提供真实的开发进

    本书作者使用的Scrapy版本是1.0.3。感兴趣的话,还可以看看Scrapy1.4最新官方文档总结。 ---- ? 下载本书代码:https://git...

    SeanCheney
  • Learning Scrapy 第二版

    下载链接:https://share.weiyun.com/5LZAI1S 《Learning Scrapy》的第二版马上就要正式出版了(2018年6月11日)...

    SeanCheney
  • 爬虫(109)接下来的计划,终极爬虫框架 Scrapy 学习

    是时候该告一段落了,每天上完班,真的很累,但是还是坚持学习一点 关于 python 爬虫的知识,虽然很累,但是收获的是满满的知识,当然也收获一点点小小的收入,喜...

    公众号---志学Python
  • Scrapy(1)概念预览

    Scrapy是一个用Python编写的快速,开放源代码的Web爬网框架,用于在基于XPath的选择器的帮助下从网页中提取数据

    公众号---志学Python
  • 《Learning Scrapy》(中文版)0 序言

    Dimitris Kouzis – Loukas有超过15年的软件开发经历。同时他也参与到教学活动中,受众广泛。

    SeanCheney
  • 《Learning Scrapy》(中文版)第1章 Scrapy介绍HelloScrapy喜爱Scrapy的其它理由关于此书:目标和用法掌握自动抓取数据的重要性开发高可靠高质量的应用 提供真实的开发进

    本书作者使用的Scrapy版本是1.0.3。感兴趣的话,还可以看看Scrapy1.4最新官方文档总结。 ---- ? 下载本书代码:https://git...

    SeanCheney
  • Python3网络爬虫(五):Python3安装Scrapy

    运行平台:Windows Python版本:Python3.x IDE:Sublime text3 一、Scrapy简介     Scrapy是一个为...

    Jack_Cui
  • 为什么使用Scrapy框架来写爬虫?

    Python爬虫中:Requests + Selenium可以解决目前90%的爬虫需求,难道Scrapy是解决剩下的10%的吗?

    无涯WuYa
  • 简单分析shared pool(二) (r3笔记48天)

    对于shared pool的学习,发现越尝试去了解,发现自己对它越不了解。里面的东西很杂。 自己想用几个问题来作为引子来说明更加会有条理一些。 shared ...

    jeanron100

扫码关注云+社区

领取腾讯云代金券