Wiki——Windows下python2.7 爬虫框架Scrapy环境配置

Wiki——Windows下python2.7 爬虫框架Scrapy环境配置

MaxSteal工程wiki
guowei.liu(blyde), 初级研发工程师
2015/8/22 21:19:43

1.开发环境介绍

1.1 操作系统

windows 7 sp1 64bit

1.2 python版本

python 2.7.10(32bit)

https://www.python.org/downloads/

备注: Windows下最好使用32bit,很多py库都是32bit的,可以直接安装

1.3 开发IDE

PyCharm 4.5.3 (Community Edition)

https://www.jetbrains.com/pycharm/

备注: 选择专业版还是社区版都可以,破解方法也蛮好找的

选择PyCharm的原因是平台优美,功能齐全,使用Git版本控制也非常方便

1.4 Scrapy版本

Scrapy1.0

http://scrapy.org/

一个快速,简单,易扩展的的开源爬虫框架。

Scrapy有非常成熟的介绍文档,国内的开发者也对文档进行了大量的翻译,还可以找到很多志同道合的开发者一起讨论相关问题,是初学者的一个比较好的选择。

是纯Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。

Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

在本工程中,将用于数据的各相关网站的数据抓取,为本站提供资源。

Scrapy 1.0英文开发文档

Scrapy 0.25中文开发文档

2.Scrapy安装

2.1 安装python的包管理工具 pip

一般安装python时都是自带的pip工具,要使用的话得先配置python的环境变量

向系统变量中添加python安装目录,比如我把python 安装到D盘目录下,即添加

D:\Python27\;D:\Python27\Scripts;

检查是否添加成功: 重新打开cmd,输入python,若打开Python 2.7.10编辑器环境,即成功

检查是否安装pip: 退出python解析器环境,输入pip 出现等待并提示没有输入包名字的,即成功

如果说没有pip这个命令 就得自行安装了,去官网下载安装pip即可。

2.2 安装Scrapy

pip install scrapy

在配置好pip的前提下安装,保证网络良好即可

检查是否安装成功: 输入python进入python编辑器环境,输入import scrapy,若没有报异常即安装成功啦!

3.初试Scrapy

3.1 参考中文文档或英文文档

以Open Directory Project(dmoz) (dmoz) 为例来讲述爬取。

本篇教程中将带您完成下列顺序任务:

1. 创建一个Scrapy项目

2. 定义提取的Item

3. 编写爬取网站的spider 并提取Item

4. 编写 Item Pipeline 来存储提取到的Item(即数据)

3.1.1 创建项目

在开始爬取之前,您必须创建一个新的Scrapy项目。进入您的WorkSpace目录中使用`Shift + 右键` 打开cmd,运行下列命令:

“scrapy startproject tutorial“

该命令将会在您的WorkSpace目录下创建包含下列内容的tutorial 目录: tutorial/ scrapy.cfg tutorial/ __init__.py items.py pipelines.py settings.py spiders/ __init__.py … 这些文件分别是:

    scrapy.cfg:             项目的配置文件
    tutorial/:              该项目的python模块.之后您将在此加入代码。
    tutorial/items.py:      项目中的item文件.
    tutorial/pipelines.py:  项目中的pipelines文件.
    tutorial/settings.py:   项目的设置文件.
    tutorial/spiders/:      放置spider代码的目录.
3.1.2 编写第一个Scrapy爬虫

Spider是用户编写用于从单个网站(或者一些网站)爬取数据的类。

其包含了一个用于下载的初始URL,如何跟进网页中的链接以及如何分析页面中的内容, 提取生成 item 的方法。

为了创建一个Spider,您必须继承 scrapy.Spider 类, 且定义以下三个属性:

    name:       用于区别Spider。 该名字必须是唯一的,您不可以为不同的Spider设定相同的名字。
    start_urls: 包含了Spider在启动时进行爬取的url列表。 因此,第一个被获取到的页面将是其中之一。后续的URL则从初始的URL获取到的数据中提取。
    parse()     是spider的一个方法。 被调用时,每个初始URL完成下载后生成的 Response 对象将会作为唯一的参数传递给该函数。 该方法负责解析返回的数据(response data),提取数据(生成item)以及生成需要进一步处理的URL的 Request 对象。

以下为我们的第一个Spider代码,保存在 tutorial/spiders 目录下的 DmozSpider.py 文件中:(注意调整格式!!!)

    import scrapy

    class DmozSpider(scrapy.spiders.Spider):
        name = "dmoz"
        allowed_domains = ["dmoz.org"]
        start_urls = [
            "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
            "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
        ]

        def parse(self, response):
            filename = response.url.split("/")[-2]
            with open(filename, 'wb') as f:
                f.write(response.body)
3.1.3 爬取

进入Workspace中的项目根目录`tutorial/`,使用`Shift + 右键` 打开cmd并执行下列命令启动spider:

`scrapy crawl dmoz`

`dmoz` 就是您的爬虫名,就是 DmozSpider 类中的 name

启动用于爬取 dmoz.org 网站的spider,

您将得到类似的输出:

    2014-01-23 18:13:07-0400 [scrapy] INFO: Scrapy started (bot: tutorial)
    2014-01-23 18:13:07-0400 [scrapy] INFO: Optional features available: ...
    2014-01-23 18:13:07-0400 [scrapy] INFO: Overridden settings: {}
    2014-01-23 18:13:07-0400 [scrapy] INFO: Enabled extensions: ...
    2014-01-23 18:13:07-0400 [scrapy] INFO: Enabled downloader middlewares: ...
    2014-01-23 18:13:07-0400 [scrapy] INFO: Enabled spider middlewares: ...
    2014-01-23 18:13:07-0400 [scrapy] INFO: Enabled item pipelines: ...
    2014-01-23 18:13:07-0400 [dmoz] INFO: Spider opened
    2014-01-23 18:13:08-0400 [dmoz] DEBUG: Crawled (200) <GET http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/> (referer: None)
    2014-01-23 18:13:09-0400 [dmoz] DEBUG: Crawled (200) <GET http://www.dmoz.org/Computers/Programming/Languages/Python/Books/> (referer: None)
    2014-01-23 18:13:09-0400 [dmoz] INFO: Closing spider (finished)

意味着您的爬虫框架Scrapy环境配置成功啦!!!

3.2 可能遇到的问题

3.2.1 ImportError: Nomodule named win32api

python环境中缺少win32api模块

win32api下载地址(sourceforge.net)

选择最新的版本下载安装即可。对我来说,我选择的是pywin32-219.win32-py2.7.exe

3.2.2 其他问题

复制代码的时候可能会影响代码的格式,一定要好好检查代码格式,不然会报很多错

根据报的错误检查代码的问题往往能解决大量问题

下一步

根据Scrapy的PDF教程学习使用Scrapy

Scrapy离线PDF

欢迎交流学习

我也是一个Scrapy新手,正在北京实习中,正在做一个垂直搜索引擎,所以就玩玩scrapy,整理一个wiki,方便自己以后查看,也希望给其他新手一些帮助,谢谢!

转载请注明出处
http://blog.csdn.net/u010183402/article/details/47864497

guowei.liu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值