scrapy安装_Python爬虫架构Scrapy快速安装

Scrapy的安装相对来说比较简单,不过它会完全依赖于你从哪里起步。为了能够支持尽可能多的用户,运行和安装Scrapy以及所有示例的“官方”方式是通过Vagrant,该软件能够让你在不考虑宿主操作系统的情况下,运行一个标准的Linux系统,在该系统中我们已经安装好所有需要用到的工具。

我们将会在接下来的几小节中给出Vagrant的使用说明以及一些常用操作系统中的指引。

4e1b64acdb00a636baceb23523a34e97.png

MacOS

为了更加方便地阅读本书,请按照后面给出的Vagrant使用说明操作。如果你想直接在MacOS系统中安装Scrapy,其实也很简单。只需要输入下面的命令即可。

$ easy_install scrapy

然后,一切都会为你准备好。在过程中,可能会要求你填写密码或安装Xcode,如图3.1所示。这些都没有问题,你可以放心地接受这些请求。

1c9927b804b6e4f17b4755dd51562dea.png

图3.1

Windows

直接在Windows系统中安装Scrapy会复杂一些,坦白来说,会有一点痛苦。而且,安装本书中所需的所有软件也需要很大程度的勇气和决心。我们已经为你做好了准备。Vagrant和Virtualbox可以在Windows 64位平台中良好运行。直接前往本章后续的相关小节,你可以很快将其安装好并运行起来。如果你必须要在Windows系统中直接安装Scrapy,请查阅本书网站(http://scrapybook.com)中的资源。

Linux

644c8ffb8b1ef912b76c5a41f032df1b.png

和前面提及的两个操作系统一样,如果你想按照本书操作,那么Vagrant就是最为推荐的方式。

由于在很多场景下,你需要在Linux服务器中安装Scrapy,因此更详尽的指引可能会很有用。

b2aed5bbb2eb65c5c7297964ede2e8db.png

确切的依赖条件经常会发生变更。本书编写时,我们安装的Scrapy版本是1.0.3,下面的内容是针对不同主流系统的操作指南。

1.Ubuntu或Debian Linux

为了在Ubuntu(使用Ubuntu 14.04 Trust Tahr 64位版本测试)或其他使用apt的发布版本中安装Scrapy,需要执行如下3个命令。

$ sudo apt-get update$ sudo apt-get install python-pip python-lxml python-crypto python-cssselect python-openssl python-w3lib python-twisted python-dev libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev$ sudo pip install scrapy

上述过程需要一些编译工作,而且可能会被不时打断,不过它将会为你安装PyPI源上最新版本的Scrapy。如果你想避免某些编译工作,并且能够忍受使用稍微过时一些的版本的话,可以通过Google搜索“install Scrapy Ubuntu packages”,并跟随Scrapy官方文档的指引进行操作。

2.Red Hat或CentOS Linux

在Red Hat或其他使用yum的发布版本中安装Scrapy相对来说比较容易。你只需按照如下3行操作即可。

sudo yum updatesudo yum -y install libxslt-devel pyOpenSSL python-lxml python-devel gccsudo easy_install scrapy

源码安装

只要你按照上述指引操作的话,就已经安装好了Scrapy目前所需的所有依赖。由于Scrapy是纯Python应用,因此如果你想修改其源代码或测试最新功能,可以很容易地从https://github.com/scrapy/scrapy网站中克隆其最新版本。在你的系统中安装Scrapy,只需输入如下命令。

$ git clone https://github.com/scrapy/scrapy.git$ cd scrapy$ python setup.py install

我猜如果你属于这类Scrapy用户,也就不需要我再提及virtualenv了。

升级Scrapy

Scrapy经常会升级。你会发现自己需要在很短时间内完成升级,此时可以使用pip、easy_install或aptitude完成这项工作。

$ sudo pip install --upgrade Scrapy

$ sudo easy_install --upgrade scrapy

如果想降级或选择特定版本,可以通过指定版本号来完成,比如:

$ sudo pip install Scrapy==1.0.0

$ sudo easy_install scrapy==1.0.0

Vagrant:运行示例的官方方式

本书中会有很多复杂但又有趣的例子,其中一些例子会用到很多服务。无论是处于初学还是进阶阶段,都可以运行本书中的这些示例,这是因为被称为Vagrant的程序可以让我们仅仅使用简单的命令就能准备好这个复杂的系统。本书中使用的系统如图3.2所示。

在Vagrant的术语中,你的电脑或笔记本被称为“宿主”机。Vagrant使用宿主机运行Docker提供者VM(虚拟机)。这些技术可以让我们拥有一个隔离的系统,在其中拥有其私有网络,可以忽略宿主机的软硬件,运行本书中的示例。

大部分章节只使用了两个服务:"dev"机器和"web"机器。我们登录到dev机器中运行爬虫,抓取web机器中的页面。后面的一些章节会用到更多的服务,包括数据库和大数据处理引擎。

请按照附录A的说明,在操作系统中安装Vagrant。到附录A的结尾时,你应当已经在操作系统中安装好git和Vagrant了。打开控制台/终端/命令提示符,现在可以按照如下操作获取本书的代码了。

$ git clone https://github.com/scalingexcellence/scrapybook.git$ cd scrapybook

然后可以通过输入如下命令打开Vagrant系统。

$ vagrant up --no-parallel

在首次运行时将会花费一些时间,这取决于你的网络连接状况。在这之后,'vagrant up'操作将会瞬间完成。当系统运行起来之后,就可以使用如下命令登录dev虚拟机。

$ vagrant ssh

现在,你已经处于开发控制台当中,在这里可以按照本书的其他说明操作。代码已经从你的宿主机复制到dev机器当中,可以在book目录下找到这些代码。

$ cd book$ lsch03 ch04 ch05 ch07 ch08 ch09 ch10 ch11 ...

打开几个控制台并执行vagrant ssh,可以获得多个可供操作的dev终端。可以使用vagrant halt关闭系统,使用vagrant status查看系统状态。请注意,vagrant halt不会关掉VM。如果出现问题,则需要打开VirtualBox然后手动关闭它,或者使用vagrant global-status找到其id(名为"docker-provider"),然后使用vagrant halt 停掉它。即使你处于离线状态,大部分示例仍然能够运行,这也是使用Vagrant的一个很好的副作用。

现在,我们已经正确地创建好了系统,下面就该准备学习Scrapy了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scrapy是一个基于Python的爬虫框架,它可以帮助我们快速高效地抓取网站数据。在这里,我将介绍Scrapy的基本用法,让您能够快速入门。 安装Scrapy ----------------------- 在安装Scrapy之前,我们需要先安装Python。然后,我们可以通过以下命令来安装Scrapy: ``` pip install scrapy ``` 创建Scrapy项目 ----------------------- 创建Scrapy项目的命令是: ``` scrapy startproject project_name ``` 这个命令将会在当前目录下创建一个名为project_name的文件夹,其中包含了Scrapy项目的基本结构。 编写Spider ----------------------- 在Scrapy中,Spider是用来定义爬取网站的规则的。我们可以通过以下命令来创建一个Spider: ``` scrapy genspider spider_name domain_name ``` 其中,spider_name是我们自己定义的Spider名称,domain_name是我们要抓取的网站域名。 接下来,我们需要在Spider中定义如何爬取网站。这里我们以爬取“http://quotes.toscrape.com/”网站上的名言警句为例。我们可以在Spider中定义如下规则: ```python import scrapy class QuotesSpider(scrapy.Spider): name = "quotes" start_urls = [ 'http://quotes.toscrape.com/page/1/', 'http://quotes.toscrape.com/page/2/', ] def parse(self, response): for quote in response.css('div.quote'): yield { 'text': quote.css('span.text::text').get(), 'author': quote.css('span small::text').get(), 'tags': quote.css('div.tags a.tag::text').getall(), } next_page = response.css('li.next a::attr(href)').get() if next_page is not None: yield response.follow(next_page, self.parse) ``` 在上述代码中,我们首先定义了Spider的名称,接着定义了我们要爬取的起始URL,最后定义了如何解析网页的函数parse()。在parse()函数中,我们使用了Scrapy的选择器来提取网页中的名言警句,并将其保存到字典中。接着,我们使用response.follow()函数来获取下一页的URL,并继续解析。 运行Spider ----------------------- 要运行我们刚才创建的Spider,我们可以使用以下命令: ``` scrapy crawl spider_name ``` 其中,spider_name是我们之前创建的Spider名称。 Scrapy会自动去抓取我们定义的起始URL,并根据我们定义的规则来解析网页。解析完成后,Scrapy会将结果保存到我们指定的位置。 总结 ----------------------- Scrapy是一个非常强大的Python爬虫框架,它可以帮助我们快速高效地抓取网站数据。在本教程中,我们介绍了Scrapy项目的创建、Spider的定义以及如何运行Spider。如果您想更深入地学习Scrapy,可以参考官方文档:https://docs.scrapy.org/en/latest/。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值