做为一个全栈工程师(:-) HoHo),前端后台都懂点是必须的,可是Python 很菜,Scrapy 更菜,没错,这就是 Full Stack Developer 的特色,什么都懂点,什么都不精,咱们的特色就是上手快,忘得也很快,不过配合强大的搜索引擎,写些小东西出来是不成问题的!php
言归正传,最近想用爬虫抓取一些内容来充实本身的博客,之前用过 phpspider,基本能知足要求,可是不够强大,因此选用 Scrapy,顺便回忆一下快忘光的 Python,谁让它这么火呢。前端
因为不是职业的Web开发者,所以环境是基于Windows的。python
到 python.org 下载最新版 Python 安装包,我使用的是3.6.3 32位版本,注意若是安装了64位版本,之后所使用的包也都须要64位(很大一部分包无32/64位区分,能够通用)。安装程序默认安装pip包管理工具,并设置了相关环境变量:添加 %Python% 及 %Python%\Scripts 到 PATH 中(%Python%是你的安装目录),你运行的 Python 程序或脚本都在 Scripts 中,包都安装在 Lib\site-packages 中。git
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
因为Python中常常要用到命令行工具,但Windows自带的cmd或PowerShell逼格过低,换个字体还得折腾大半天,所以有必要换一个好用的,推荐cmder mini版:https://github.com/cmderdev/c...,Python输出的调试信息能够根据颜色区分,不用像cmd那样找半天了。app
基本上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 是python中的解包和打包工具,所以有必要安装到全局环境中,有些模块使用pip安装老是失败,能够尝试先下载whl文件,再使用wheel本地安装的方式安装。
pip install wheel
既然在Windows下开发,win32api也是必不可少的包,所以也装到全局环境中,下次新建虚拟项目环境用到时就没必要每次再下载一次了。
固然,以上2,3,4其实都不是必须的,可是建好基本环境有利于之后的开发少兜圈子。
打开cmder命令行工具
mkvirtualenv Scrapy
,默认状况下会建立%HOMEPATH%\Envs目录,全部的虚拟环境都会产生一个子目录保存在此,里面包含Python基本程序文件以及pip,wheel,setuptools库文件。若是想修改Envs默认路径,在Windows中可添加一个 %WORKON_HOME%
环境变量指定新的目录。workon scrapy
,执行后在命令行提示符前面会多出 (Scrapy)
字符,表示当前处于Scrapy虚拟环境中,同时添加了当前环境中的相关路径在系统 %PATH% 搜索路径中。安装Scrapy包:pip install scrapy
,本身好几回都遇到Twisted模块安装失败的问题,貌似是编译失败,缺乏Microsoft Visual C++ 14.0
致使:
我没有按要求安装Microsoft Visual C++ 14.0编译工具进行编译安装,而是下载已打包的whl文件进行本地安装,此时wheel便派上了用场,到 https://www.lfd.uci.edu/~gohl... 下载twisted的whl文件(注意对应Python版本)
再使用 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
,整个目录都会被删除,全部依赖模块都会被清理干净。