Python3 爬虫 Scrapy的安装

        Scrapy是基于Python的分布式爬虫框架。使用它可以非常方便地实现分布式爬虫。Scrapy高度灵活,能够实现功能的自由拓展,让爬虫可以应对各种网站情况。同时,Scrapy封装了爬虫的很多实现细节,所以可以让开发者把更多的精力放在数据的提取上。

一、在Windows下安装Scrapy

        Windows是目前最主流的操作系统,在日常的使用中,Windows有着非常好的用户体验。不过对于程序开发来说,Windows在某些方面会让工作变得比较麻烦,例如安装Scrapy。
        要保证Scrapy在Windows中正确安装,请严格按照以下步骤执行。

1. 安装Visual C++ Build Tools

        由于在Scrapy的依赖库文件中,pywin32和Twisted的底层是基于C语言开发的,因此需要安装C语言的编译环境。对于Python3.6来说,可以通过安装Visual C++ BuildTools来安装这个环境。Visual C++ Build Tools是微软公司开发的,下载地址为https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15,下载下来的只是一个大小为1MB左右的安装器,运行以后的界面如图:

        单击“安装”按钮进行安装,这个安装器会自动下载需要的文件。安装过程视网速和计算机性能而定,一般需要30~60min。


        出现上图所示,这是因为系统没有安装.Net Framework或者安装的版本太低。此时下载并安装一个4.5.1或以上版本的.Net Framework即可。
        安装好.Net Framework以后,Microsoft Visual C++ Build Tools应该就可以正常安装了。

2. 安装pywin32

        在Windows系统中搭建Scrapy的环境,有两个第三方库不能使用常规的方法安装。第一个是lxml,第二个是pywin32。pywin32和lxml一样,不建议使用pip来安装,因为10次至少有9次都会安装出错。pywin32甚至也不能使用安装lxml的方式来安装。pywin32 必须使用.exe安装包来进行安装。
        根据计算机上的Python版本和位数下载并安装最新版的pywin32,安装程序会自动寻找Python的安装路径,所以不需要做任何修改,一直单击“下一步”按钮即可。

3. 安装Twisted

        Scrapy需要依赖Twisted。Twisted是Python中的一个非常重要的基于事件驱动的异步输入/输出(Input/Output,I/O)引擎。Twisted的安装依赖于pywin32和前面的Visual C++ Build Tools,所以必须先安装前面这两个东西,才能安装Twisted。
        到目前为止,已经可以直接在CMD中使用pip来安装Twisted了:

pip install twisted

        不过先别着急,这样安装虽然从功能上说没有问题,但并不是一个好方法。因为Twisted和之后的Scrapy的安装,会附带安装大量的依赖库,而这些库,仅在Scrapy中会用到,平时的普通开发中几乎不会用到。所以如果把它们安装到系统的Python环境中,会导致Python环境的混乱。而且发布爬虫的时候,也不便于导出涉及的依赖库文件。
        因此,建议使用Virtualenv创建一个虚拟的Python环境来安装Scrapy剩下的部分。
        Virtualenv是Python的一个第三方库,使用它可以创建Python的虚拟环境。使用安装普通第三方库的方法就可以安装Virtualenv:

pip install virtualenv

        最理想的情况是,系统的Python环境中只安装Virtualenv,之后的所有开发都在Virtualenv创建的虚拟Python环境中进行。每个项目都有它自己独立的虚拟Python环境,各个环境之间互不干扰。但是,在Windows系统中,这个最理想的情况有时候没有办法实现。例如在搭建Scrapy时,通过安装.exe文件的方式来安装pywin32的时候,是没有办法指定安装位置的,所以pywin32必定会安装到系统的Python环境中。在这种情况下,就必须让Virtualenv创建的虚拟Python环境可以使用系统Python中的第三方库。
        要让Virtualenv使用系统Python环境的第三方库,就需要在CMD中使用下面的命令来创建虚拟环境:

virtualenv --always-copy --system-site-packages venv

        创建虚拟环境以后,可以使用下面的命令来激活虚拟环境:

venv\scripts\activate

        不要关闭现在这个CMD窗口,接下来的所有操作都要在这里进行。安装Twisted:

pip install twisted

        这个文件比较大,需要几分钟的时间才能安装完成。
        安装完成Twisted以后,在虚拟的Python环境中安装lxml。

4. pip安装Scrapy

        前面的环境都准备好以后,就可以使用pip来安装Scrapy了:

pip install scrapy

二、在Linux下安装Scrapy

        在Linux下安装Scrapy比在Windows下安装简单得多,可以完全通过命令来操作。

1. 安装依赖库

        在Linux的终端中执行下面的命令来安装依赖库:

sudo apt-get install python3-dev python3-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev

        不用担心这里面的某些库已经安装,因为apt-get会自动检测并跳过这些已经安装的库。

2. 创建Virtualenv虚拟Python环境并安装Scrapy

        在Linux的终端中创建虚拟的Python环境:

virtualenv --always-copy –python=python3 venv

        激活虚拟的Python环境:

. venv/bin/activate

        安装Scrapy:

pip install scrapy

        注意,在Virtualenv创建的虚拟Python环境中,执行pip命令安装第三方库时是不需要使用sudo命令的。

三、在Mac OS下安装Scrapy

        在Mac OS下面安装Scrapy非常简单,大多数人可以直接从Linux安装流程的第2步开始:
在终端中创建虚拟的Python环境:

virtualenv --always-copy --python=python3 venv

        激活虚拟的Python环境:

. venv/bin/activate

        安装Scrapy:

pip install scrapy

        不过,由于pip的网络经常会受到干扰,所以可能有在安装的时候会得到在线连接超时等报错信息。这个时候,可以使用一些代理工具来让网络变得稳定,比如,ProxyChains 代理工具的安装和使用解决下载依赖库的网络超时的问题。

--------------------------------------

没有自由的秩序和没有秩序的自由,同样具有破坏性。


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/478086.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

golang实现TCP服务器与客户端的断线自动重连功能

1.服务端 2.客户端 生成服务端口程序: 生成客户端程序: 测试断线重连: 初始连接成功

【Spring Boot】# 使用@Scheduled注解无法执行定时任务

1. 前言 在 Spring Boot中,使用Scheduled注解来定义定时任务时,定时任务不执行;或未在规定时间执行。 import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component;Component public c…

java 老矣,尚能饭否?

随笔 从千万粉丝“何同学”抄袭开源项目说起,为何纯技术死路一条? 数据源的统一与拆分 监控报警系统的指标、规则与执行闭环 java 老矣,尚能饭否? 一骑红尘妃子笑,无人知是荔枝来! java 老吗? 去年看…

[译]Elasticsearch Sequence ID实现思路及用途

原文地址:https://www.elastic.co/blog/elasticsearch-sequence-ids-6-0 如果 几年前,在Elastic,我们问自己一个"如果"问题,我们知道这将带来有趣的见解: "如果我们在Elasticsearch中对索引操作进行全面排序会怎样…

解锁PPTist的全新体验:Windows系统环境下本地部署与远程访问

文章目录 前言1. 本地安装PPTist2. PPTist 使用介绍3. 安装Cpolar内网穿透4. 配置公网地址5. 配置固定公网地址 前言 在Windows系统环境中,如何本地部署开源在线演示文稿应用PPTist,并实现远程访问?本文将为您提供详细的部署和配置指南。 P…

一文学会Golang里拼接字符串的6种方式(性能对比)

g o l a n g golang golang的 s t r i n g string string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去。主要有以下几种拼接方式 拼接方式介绍 1.使用 s t r i n g string string自带的运算符 ans ans s2. 使用…

IEC61850读服务器目录命令——GetServerDirectory介绍

IEC61850标准中的GetServerDirectory命令是变电站自动化系统中非常重要的一个功能,它主要用于读取服务器的目录信息,特别是服务器的逻辑设备节点(LDevice)信息。以下是对GetServerDirectory命令的详细介绍。 目录 一、命令功能 …

Flink学习连载第二篇-使用flink编写WordCount(多种情况演示)

使用Flink编写代码,步骤非常固定,大概分为以下几步,只要牢牢抓住步骤,基本轻松拿下: 1. env-准备环境 2. source-加载数据 3. transformation-数据处理转换 4. sink-数据输出 5. execute-执行 DataStream API开发 //n…

数据集-目标检测系列- 花卉 玫瑰 检测数据集 rose >> DataBall

数据集-目标检测系列- 花卉 玫瑰 检测数据集 rose >> DataBall DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 贵在坚持! 数据样例项目地址: * 相关项目 1)数据集可视化项…

Windows系统运行库软件游戏修复工具

本页面下载的资源包包括PC电脑常用的运行库和电脑必备组件,如您的电脑出现应用打不开,缺少dll链接库、闪退等现象可以尝试用下面软件修复。 本资源永久有效。 软件安装基本常识科普: 为什么要安装运行库?运行库默认安装到C盘&…

wireshark使用lua解析自定义协议

wireshark解析自定义协议 1.自定义的lua放入路径2.修改init.lua2.1 开启lua2.2 init.lua文件最后加入自己的lua文件位置,这里需要确保与自己的文件名相同 3.编写lua4.编写c抓包5.wireshark添加自定义协议如何加调试信息 1.自定义的lua放入路径 一般是自己软件的安装…

ISAAC Gym 7. 使用箭头进行数据可视化

在这里发布一个ISAAC GYM可以使用的箭头绘制类。 gymutil默认有WireframeBoxGeometry,WireframeBBoxGeometry, WireframeSphereGeometry三个线段集生成函数,可以绘制盒子和球体。绘制函数分别有draw_lines和draw_line。 同理,使…

【计算机网络】网段划分

一、为什么有网段划分 IP地址 网络号(目标网络) 主机号(目标主机) 网络号: 保证相互连接的两个网段具有不同的标识 主机号: 同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号 互联网中的每一台主机,都要隶属于某一个子网 -&…

机器学习周志华学习笔记-第5章<神经网络>

机器学习周志华学习笔记-第5章<神经网络> 卷王&#xff0c;请看目录 5模型的评估与选择5.1 神经元模型5.2 感知机与多层网络5.3 BP(误逆差)神经网络算法 5.4常见的神经网络5.4.1 RBF网络&#xff08;Radial Basis Function Network&#xff0c;径向基函数网络&#xff0…

MySQL数据库设计

数据库设计 数据库是用来存在数据的&#xff0c;需要设计合理的数据表来存放数据–能够完成数据的存储&#xff0c;同时能够方便的提取应该系统所需的数据 1. 数据库的设计流程 数据库是为应用系统服务的&#xff0c;数据库的数据存储也是由应用系统决定的 当我们进行应用系统开…

Spring Boot 3.x + OAuth 2.0:构建认证授权服务与资源服务器

Spring Boot 3.x OAuth 2.0&#xff1a;构建认证授权服务与资源服务器 前言 随着Spring Boot 3的发布&#xff0c;我们迎来了许多新特性和改进&#xff0c;其中包括对Spring Security和OAuth 2.0的更好支持。本文将详细介绍如何在Spring Boot 3.x版本中集成OAuth 2.0&#xf…

数据可视化复习2-绘制折线图+条形图(叠加条形图,并列条形图,水平条形图)+ 饼状图 + 直方图

目录 目录 一、绘制折线图 1.使用pyplot 2.使用numpy ​编辑 3.使用DataFrame ​编辑 二、绘制条形图&#xff08;柱状图&#xff09; 1.简单条形图 2.绘制叠加条形图 3.绘制并列条形图 4.水平条形图 ​编辑 三、绘制饼状图 四、绘制散点图和直方图 1.散点图 2…

logback 初探学习

logback 三大模块 记录器&#xff08;Logger&#xff09;、追加器&#xff08;Appender&#xff09;和布局&#xff08;Layout&#xff09; 配置文件外层最基本的标签如图示 xml中定义的就是这个三个东西下面进入学习 包引入参考springboot 官方文档 Logging :: Spring Boo…

Linux:自定义Shell

本文旨在通过自己完成一个简单的Shell来帮助理解命令行Shell这个程序。 目录 一、输出“提示” 二、获取输入 三、切割字符串 四、执行指令 1.子进程替换 2.内建指令 一、输出“提示” 这个项目基于虚拟机Ubuntu22.04.5实现。 打开终端界面如图所示。 其中。 之前&#x…

《图像梯度与常见算子全解析:原理、用法及效果展示》

简介:本文深入探讨图像梯度相关知识&#xff0c;详细介绍图像梯度是像素灰度值在不同方向的变化速度&#xff0c;并以 “pig.JPG” 图像为例&#xff0c;通过代码展示如何选取图像部分区域并分析其像素值以论证图像梯度与边缘信息的关联。接着全面阐述了 Sobel 算子&#xff0c…