基於 Python 的 Scrapy 爬蟲入門:環境搭建

目錄


做爲一個全棧工程師(:-) HoHo),前端後臺都懂點是必須的,可是Python 很菜,Scrapy 更菜,沒錯,這就是 Full Stack Developer 的特色,什麼都懂點,什麼都不精,咱們的特色就是上手快,忘得也很快,不過配合強大的搜索引擎,寫些小東西出來是不成問題的!php

言歸正傳,最近想用爬蟲抓取一些內容來充實本身的博客,之前用過 phpspider,基本能知足要求,可是不夠強大,因此選用 Scrapy,順便回憶一下快忘光的 Python,誰讓它這麼火呢。前端

1、基礎環境

因爲不是職業的Web開發者,所以環境是基於Windows的。python

1. Python 安裝

python.org 下載最新版 Python 安裝包,我使用的是3.6.3 32位版本,注意若是安裝了64位版本,之後所使用的包也都須要64位(很大一部分包無32/64位區分,能夠通用)。安裝程序默認安裝pip包管理工具,並設置了相關環境變量:添加 %Python% 及 %Python%\Scripts 到 PATH 中(%Python%是你的安裝目錄),你運行的 Python 程序或腳本都在 Scripts 中,包都安裝在 Lib\site-packages 中。git

2. 配置 pip 國內鏡像源

Python之因此強大正是由於各類功能齊全的開發包,因爲衆所周知的緣由 pip下載模塊速度很慢,所以爲了保證pip下載順利,建議替換成國內的安裝源鏡像:github

  • 建立文件 %HOMEPATH%\pip\pip.ini,內容以下:web

    [global]
    trusted-host=mirrors.aliyun.com
    index-url=http://mirrors.aliyun.com/pypi/simple/
  • 上面這個是清華大學的鏡像,另外附上其餘幾個好用的,聽說每30分鐘同步官網segmentfault

    阿里雲:http://mirrors.aliyun.com/pypi/simple/
    豆瓣網:http://pypi.doubanio.com/simple/
    科技大學:http://mirrors.ustc.edu.cn/pypi/web/simple/
    清華大學:https://pypi.tuna.tsinghua.edu.cn/simple/
  • 若是不嫌麻煩的話也能夠每次安裝時指定:api

    pip -i http://pypi.douban.com/simple install Flask

3. 換一個趁手的命令行

因爲Python中常常要用到命令行工具,但Windows自帶的cmd或PowerShell逼格過低,換個字體還得折騰大半天,所以有必要換一個好用的,推薦cmder mini版:https://github.com/cmderdev/c...,Python輸出的調試信息能夠根據顏色區分,不用像cmd那樣找半天了。
cmderapp

4. 安裝基礎包

virtualenv

基本上Python每一個項目都會用到大量的模塊,好比本文中的Scrapy爬蟲,pip install scrapy後除了Scrapy自己外,還會下載數十個依賴包,若是常常用Python作各類開發,site-packages會愈來愈龐大,可能有些包只在一個項目中用到,或者刪除包後依賴包並無被刪除,總之不太好管理,做爲強迫症患者是決不能忍受的。scrapy

好在有一個工具 virtualenv 能夠方便管理 Python 的環境,它能夠建立一個隔離的Python虛擬開發環境,使用它你能夠同時安裝多個Python版本,方便同時多個項目的開發,每一個項目之間的包安裝與使用都是獨立的,互不干擾,經過命令能夠隨時切換各個虛擬環境,若是再也不使用,把整個虛擬環境刪除便可同時刪除其中全部的模塊包,保持全局環境的乾淨。

爲了便於使用,我選擇安裝virtualenvwrapper-win模塊,它依賴於virtualenv,包含Windows下面易於使用的批處理腳本,其實只是調用了 virtualenv 功能而已:

pip install virtualenvwrapper-win

virtualenvwrapper 經常使用命令:

  • workon: 列出虛擬環境列表
  • lsvirtualenv: 同上
  • mkvirtualenv: 新建虛擬環境
  • workon [虛擬環境名稱]: 切換虛擬環境
  • rmvirtualenv: 刪除虛擬環境
  • deactivate: 離開虛擬環境
wheel

wheel 是python中的解包和打包工具,所以有必要安裝到全局環境中,有些模塊使用pip安裝老是失敗,能夠嘗試先下載whl文件,再使用wheel本地安裝的方式安裝。

pip install wheel

pypiwin32

既然在Windows下開發,win32api也是必不可少的包,所以也裝到全局環境中,下次新建虛擬項目環境用到時就沒必要每次再下載一次了。


固然,以上2,3,4其實都不是必須的,可是建好基本環境有利於之後的開發少兜圈子。

2、Scrapy 安裝

打開cmder命令行工具

  1. 建立Scrapy虛擬環境: mkvirtualenv Scrapy,默認狀況下會建立%HOMEPATH%\Envs目錄,全部的虛擬環境都會產生一個子目錄保存在此,裏面包含Python基本程序文件以及pip,wheel,setuptools庫文件。若是想修改Envs默認路徑,在Windows中可添加一個 %WORKON_HOME% 環境變量指定新的目錄。
  2. 切換到Scrapy環境:workon scrapy ,執行後在命令行提示符前面會多出 (Scrapy) 字符,表示當前處於Scrapy虛擬環境中,同時添加了當前環境中的相關路徑在系統 %PATH% 搜索路徑中。
  3. 安裝Scrapy包:pip install scrapy,本身好幾回都遇到Twisted模塊安裝失敗的問題,貌似是編譯失敗,缺乏Microsoft Visual C++ 14.0致使:

    error

    我沒有按要求安裝Microsoft Visual C++ 14.0編譯工具進行編譯安裝,而是下載已打包的whl文件進行本地安裝,此時wheel便派上了用場,到 https://www.lfd.uci.edu/~gohl... 下載twisted的whl文件(注意對應Python版本)

    whl

    再使用 pip install Twisted‑17.9.0‑cp36‑cp36m‑win32.whl 來進行安裝,本地安裝twisted成功,因爲以前被錯誤中斷,建議再執行一次 pip install scrapy 防止有依賴包沒有安裝到。

    注意:Windows平臺須要額外安裝 pypiwin32 模塊,不然在Scrapy執行爬蟲時會報錯:
    ModuleNotFoundError: No module named 'win32api'

至此 Scrapy 環境搭建完成,全部的模塊存放在 %HOMEPATH%\Envs\Scrapy 中,若是再也不使用,只須要命令行執行 rmvirtualenv scrapy,整個目錄都會被刪除,全部依賴模塊都會被清理乾淨。

相關文章
相關標籤/搜索