1. 程式人生 > >Python3環境安裝Scrapy爬蟲框架過程及常見錯誤

Python3環境安裝Scrapy爬蟲框架過程及常見錯誤

收錄待用,修改轉載已取得騰訊雲授權

Scrapy安裝介紹

Scrapy的安裝有多種方式,它支援Python2.7版本及以上或Python3.3版本及以上。下面說明Python3環境下的安裝過程。

Scrapy依賴的庫比較多,至少需要依賴庫有Twisted 14.0,lxml 3.4,pyOpenSSL 0.14。而在不同平臺環境又各不相同,所以在安裝之前最好確保把一些基本庫安裝好,尤其是Windows。

騰訊雲有Windows、Linux多個版本系統,在這裡分別介紹。

各平臺安裝簡介

Anaconda

這種方法是一種比較簡單的安裝Scrapy的方法(尤其是對Windows來說),你可以使用該方法安裝,也可以選用下文中專用平臺的安裝方法。

Anaconda是包含了常用的資料科學庫的Python發行版本,如果沒有安裝,可以到https://www.continuum.io/downloads下載對應平臺的包安裝。

如果已經安裝,那麼可以輕鬆地通過conda命令安裝Scrapy。

安裝命令如下:

conda install Scrapy

Windows

  • 安裝lxml

最好的安裝方式是通過wheel檔案來安裝,http://www.lfd.uci.edu/~gohlke/pythonlibs/,從該網站找到lxml的相關檔案。假如是Python3.5版本,WIndows 64位系統,那就找到lxml‑3.7.2‑cp35‑cp35m‑win_amd64.whl 這個檔案並下載,然後通過pip安裝。

下載之後,執行如下命令安裝:

pip3 install wheel
pip3 install lxml‑3.7.2‑cp35‑cp35m‑win_amd64.whl

即可完成lxml的安裝,其他檔案替換檔名即可。

  • 安裝zope.interface

到官方網站https://pypi.python.org/pypi/zope.interface#downloads下載對應版本的wheel檔案,然後pip安裝。比如Python 3.5版本,Windows 64位系統,就下載zope.interface-4.3.3-cp35-cp35m-win_amd64.whl。

然後安裝wheel檔案即可,命令如下:

pip3 install zope.interface-4.3.3-cp35-cp35m-win_amd64.whl

其他版本替換檔名即可。

  • 安裝pyOpenSSL
pip3 install pyOpenSSL-16.2.0-py2.py3-none-any.whl
  • 安裝Twisted

同理,http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted下載wheel檔案,利用pip安裝即可。
如Python 3.5版本,Windows 64位系統,下載
Twisted‑17.1.0‑cp35‑cp35m‑win_amd64.whl,然後pip安裝。

pip3 install Twisted‑17.1.0‑cp35‑cp35m‑win_amd64.whl
  • 安裝pywin32
  • 安裝Scrapy

最後安裝Scrapy即可,依然使用pip,命令如下:

pip3 install Scrapy

CentOS、RedHat、Fedora

  • 依賴庫安裝

確保一些必須的類庫已經安裝,執行如下命令:

sudo yum groupinstall development tools
sudo yum install python34-devel epel-release libxslt-devel libxml2-devel openssl-devel
  • 安裝Scrapy

利用pip安裝Scrapy即可,執行如下命令:

pip3 install Scrapy

Ubuntu、Debian、Deepin

  • 依賴庫安裝

首先確保一些必須的類庫已經安裝,執行如下命令:

sudo apt-get install build-essential python3-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev
  • 安裝Scrapy

利用pip安裝Scrapy即可,執行如下命令:

pip3 install Scrapy

雖然騰訊雲沒有Mac系統,不過在這裡還是加上MacOS的安裝。

Mac OS

  • 依賴庫安裝

在Mac上構建Scrapy的依賴庫需要C編譯器以及開發標頭檔案,它一般由Xcode提供,執行如下命令安裝即可:

xcode-select --install
  • 安裝Scrapy

利用pip安裝Scrapy即可,執行如下命令:

pip3 install Scrapy

驗證

安裝之後,在命令列下輸入scrapy,如果出現類似下方的結果,就證明Scrapy安裝成功。

常見錯誤

  • pkg_resources.VersionConflict: (six 1.5.2 (/usr/lib/python3/dist-packages), Requirement.parse(‘six>=1.6.0’))

six包版本過低,six包是一個提供相容Python2和Python3的庫,升級six包即可。

sudo pip3 install -U six
  • c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory

缺少Libffi這個庫。什麼是libffi?“FFI” 的全名是 Foreign Function Interface,通常指的是允許以一種語言編寫的程式碼呼叫另一種語言的程式碼。而Libffi庫只提供了最底層的、與架構相關的、完整的”FFI”。

安裝相應的庫即可。

Ubuntu、Debian:

sudo apt-get install build-essential libssl-dev libffi-dev python3-dev

CentOS、RedHat:

sudo yum install gcc libffi-devel python-devel openssl-devel
  • ImportError: No module named ‘cryptography’

這是缺少加密的相關元件,利用pip安裝即可。

sudo pip3 install cryptography
  • ImportError: No module named ‘packaging’

缺少packaging這個包,它提供了Python包的核心功能,利用pip安裝即可。

sudo pip3 install packaging
  • ImportError: No module named ‘appdirs’

缺少appdirs這個包,它用來確定檔案目錄,利用pip單獨安裝即可。

sudo pip3 install appdirs