前言
大数据时代,数据为王,对于大数据处理来说,爬虫是必不可少的一环。聚焦到爬虫开发,又有多个开源框架可供选择,如:Nutch、Crawler4j、WebMagic、Scrapy、WebCollector、Larbin … 。爬虫的技术并不复杂,开发人员可以根据业务需求选择开源框架,也可以自己开发。笔者是想爬取一些数据进行数据分析,本身数据量不大,网页结构也比较简单,所以就选择了Scrapy框架。Scrapy框架介绍
安装Scrapy
安装python,配置python环境
不详细叙述,百度或google即可
安装Python虚拟环境(可选)
Python使用pip install或easy-install安装依赖模块时,会把依赖包存在python安装目录下的
site-package目录中,如果两个python程序需要依赖同一个模块的不同版本,那么就会产生冲突。
Python虚拟环命令如下:
功能 | 命令 |
---|---|
安装python虚拟环境模块 | pip install virtualenv |
创建虚拟环境,ENV为虚拟环境目录名称 | virtualenv ENV |
创建虚拟环境,继承系统环境的安装包 | virtualenv –system-site-packages ENV |
进入虚拟环境 | ENV/Scripts目录下,运行activate.bat |
退出虚拟环境 | ENV/Scripts目录下,运行deactive.bat |
进入虚拟环境,使用pip命令安装,依赖程序会安装到ENV/lib/site-packages目录下。运行程序时,需要先进入虚拟环境。
安装Scrapy
直接运行pip install Scrapy,安装Scrapy及其依赖包,通常安装依赖包时会出现错误。如下:
error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat)
解决:安装 [python的vc编译器](https://www.microsoft.com/en-us/download/confirmation.aspx?id=44266)
ImportError: No module named win32
解决:pip install pypiwin32
如果依赖包一直编译出问题,还可以直接安装编译好的二进制文件。
到[pythonlibs](http://www.lfd.uci.edu/~gohlke/pythonlibs/)下载依赖文件,如:lxml-3.6.4-cp27-cp27m-win32.whl
安装文件:pip install lxml-3.6.4-cp27-cp27m-win32.whl
选择IDE
笔者使用的是PyCharm,[下载地址](https://www.jetbrains.com/pycharm/) [注册码](http://www.ttlsa.com/python/pycharm-2016-2-1-reg-code/)
创建工程
scrapy startproject xxx
会自动生成工程,使用pycharm打开工程。工程目录如下:
Scrapy程序调试
运行Spider时,是通过scrapy crawl xxxSpider命令运行Spider程序,当我们开发时怎么在PyCharm中进行调试呢?
Scrapy通过twisted的reactor类来运行Spider的,我们只需要自己写个启动类并在PyCharm中启动调试运行即可,test.py代码如下:
#-*- coding:utf-8 -*-
from twisted.internet import reactor
from scrapy.crawler import Crawler
from scrapy.utils.project import get_project_settings
from spiders.xxxSpider import XXXSpider
spider = XXXSpider()
settings = get_project_settings()
crawler = Crawler(spider, settings)
crawler.crawl(spider)
reactor.run()
把test.py放到工程根目录,在自己的spider中打断点,运行test.py即可。
参考文献
https://zhidao.baidu.com/question/1241374751315036339.html
http://www.cnblogs.com/76er/archive/2012/10/24/2737966.html
https://doc.scrapy.org/en/latest/intro/install.html
https://virtualenv.pypa.io/en/stable/userguide/