Windows python3下安装scrapy爬虫框架的完美方案

Windows python3下安装scrapy爬虫框架的完美方案

1. 背景

  • Scrapy依赖的库比较多,至少需要依赖库有Twisted,lxml,pyOpenSSL,pywin32等。而且现在scrapy尚未全面过渡到python3,所以安装和使用起来会存在一些问题。尤其是在Windows下。
  • 在win7直接使用pip install scrapy安装会出现如下错误:
# 提示缺少Twisted
Command ""d:\program files\python36\python.exe" -u -c "import setuptools, tokeni
ze;__file__='C:\\Users\\SEELE\\AppData\\Local\\Temp\\pip-build-jaaqsgel\\Twisted
\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\
r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:
\Users\SEELE\AppData\Local\Temp\pip-wodz4dbl-record\install-record.txt --single-
version-externally-managed --compile" failed with error code 1 in C:\Users\SEELE
\AppData\Local\Temp\pip-build-jaaqsgel\Twisted\

Windows python3下安装scrapy爬虫框架的完美方案_第1张图片
Windows python3下安装scrapy爬虫框架的完美方案_第2张图片

  • 所以我们要按照下面的步骤,将scrapy依赖的库一个一个依次安装上,最后再用pip install scrapy安装

2. 环境。

  • python 3.6.1
  • 系统:win7 64bit
  • 安装过 pip

3. 安装步骤

3.1. 第一步:确定本机python环境依赖库的版本

在python IDLE中执行下面这段代码,查看依赖库的版本信息。

# python3.6下
import pip
print(pip.pep425tags.get_supported())

# python3.7下?
import pip._internal
print(pip._internal.pep425tags.get_supported())

Windows python3下安装scrapy爬虫框架的完美方案_第3张图片

  • 如上所示,本机依赖库版本要选择:cp36, win_amd64 。后面就知道它的用途了。

3.2. 第二步:安装 lxml

3.2.1. 下载lxml对应的whl文件

  • 从 http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml 找到对应的lxml版本:lxml-3.7.3-cp36-cp36m-win_amd64.whl,下载相应的whl文件:
    Windows python3下安装scrapy爬虫框架的完美方案_第4张图片

3.2.2. 安装whl文件

  • cmd定位到whl文件所在目录 D:\scrapy_ralated
  • pip安装 wheel
  • pip安装 lxml-3.7.3-cp36-cp36m-win_amd64.whl
pip3 install wheel
pip3 install lxml-3.7.3-cp36-cp36m-win_amd64.whl

Windows python3下安装scrapy爬虫框架的完美方案_第5张图片

  • 安装成功!

  • 注意:如果依赖库的版本不对,将会出现如下错误(强调:一定要选择正确的版本):
    Windows python3下安装scrapy爬虫框架的完美方案_第6张图片

3.3. 第三步:安装 zope.interface

  • 从官方网站 https://pypi.python.org/pypi/zope.interface#downloads 找到对应版本的whl文件:zope.interface-4.4.2-cp36-cp36m-win_amd64.whl,下载,然后参照3.2.2 pip安装:
pip3 install zope.interface-4.4.2-cp36-cp36m-win_amd64.whl

3.4. 第四步:安装 pyOpenSSL

  • 从官方网站 https://pypi.python.org/pypi/pyOpenSSL#downloads 找到对应版本的whl文件:pyOpenSSL-17.2.0-py2.py3-none-any.whl,下载,然后参照3.2.2 pip安装:
pip3 install pyOpenSSL-17.2.0-py2.py3-none-any.whl

3.5. 第五步:安装 Twisted

  • 从 http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 找到对应版本的whl文件:Twisted-17.5.0-cp36-cp36m-win_amd64.whl,下载,然后参照3.2.2 pip安装:
pip3 install Twisted-17.5.0-cp36-cp36m-win_amd64.whl

3.6. 第六步:安装 pywin32

3.6.1. 安装

  • 从官方网站 https://sourceforge.net/projects/pywin32/files/pywin32/ 找到对应版本的安装文件:pywin32-221.win-amd64-py3.6.exe,下载,直接双击安装:
  • 注意:这个要看发布时间,选择最接近本机环境版本的安装包。这个版本一定要对,要不然安装时,识别不了python安装路径,无法安装。例如,本机环境下:
  • pywin32-221.win-amd64-py3.6.exe 安装成功(Build 221)
  • pywin32-220.win-amd64-py3.6.exe 安装失败(Build 220)
    Windows python3下安装scrapy爬虫框架的完美方案_第7张图片

3.6.2. 验证

  • 安装完成后,import导入,测试一下是否安装成功(import无异常):
    Windows python3下安装scrapy爬虫框架的完美方案_第8张图片

3.7. 第七步:安装 scrapy

3.7.1. 安装scrapy

  • 直接pip安装scrapy
pip3 install scrapy
  • 全部过程如下:
    Windows python3下安装scrapy爬虫框架的完美方案_第9张图片
    Windows python3下安装scrapy爬虫框架的完美方案_第10张图片
    Windows python3下安装scrapy爬虫框架的完美方案_第11张图片

  • 至此,scrapy就已经安装完毕。

3.7.2. 测试结果。

  • 用scrapy创建一个爬虫,运行结果如下:
  • 创建第一个爬虫:
scrapy startproject fengniaoPictrue  #创建一个爬虫项目
cd fengniaoPictrue	#进入到爬虫项目目录
scrapy genspider fengniaoPortrait fengniao.com #创建一个具体的爬虫

Windows python3下安装scrapy爬虫框架的完美方案_第12张图片

  • 运行爬虫:
scrapy crawl fengniaoPortrait

Windows python3下安装scrapy爬虫框架的完美方案_第13张图片
Windows python3下安装scrapy爬虫框架的完美方案_第14张图片

3.8. 第八步:安装 scrapy图片处理库PIL

3.8.1. 背景。

  • 当我们使用scrapy的图片下载机制时,会使用到模块scrapy.pipelines.images,这个模块会使用到PIL库(from PIL import Image),但是在python3中并没有这个PIL库,所以scrapy爬虫运行会出现如下错误:
# 文件pipelines.py中
import scrapy
from scrapy.pipelines.images import ImagesPipeline
import os

class ImageDownloadPipeline(ImagesPipeline):
    pass
# 运行报错
ModuleNotFoundError: No module named 'PIL'

Windows python3下安装scrapy爬虫框架的完美方案_第15张图片

3.8.2. 安装Pillow

  • 知识点:PIL基础
  • 从PIL官网:http://www.pythonware.com/products/pil/ 可以看到PIL已经停止更新了,只支持到了python2
  • Pillow 是 PIL的对Python3支持的另外一个分支,当然他对Python2也兼容,使用pip可以很轻松的安装Pillow,虽然名字不同,但是其核心还是PIL库的,所以在scrapy下可以使用。
pip install Pillow

Windows python3下安装scrapy爬虫框架的完美方案_第16张图片

  • 至此,图片的依赖库也安装完毕了,可以使用scrapy下载图片了。

4. 参考资料

  • scrapy在各种平台(linux, windows, CentOS, RedHat,Fedora…)下的安装过程以及注意事项:

http://www.cnblogs.com/liuliliuli2017/p/6746440.html

你可能感兴趣的:(环境搭建,python爬虫)