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
一个快速,简单,易扩展的的开源爬虫框架。
Scrapy有非常成熟的介绍文档,国内的开发者也对文档进行了大量的翻译,还可以找到很多志同道合的开发者一起讨论相关问题,是初学者的一个比较好的选择。
是纯Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。
Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
在本工程中,将用于数据的各相关网站的数据抓取,为本站提供资源。
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模块
选择最新的版本下载安装即可。对我来说,我选择的是pywin32-219.win32-py2.7.exe
3.2.2 其他问题
复制代码的时候可能会影响代码的格式,一定要好好检查代码格式,不然会报很多错
根据报的错误检查代码的问题往往能解决大量问题
下一步
根据Scrapy的PDF教程学习使用Scrapy
欢迎交流学习
我也是一个Scrapy新手,正在北京实习中,正在做一个垂直搜索引擎,所以就玩玩scrapy,整理一个wiki,方便自己以后查看,也希望给其他新手一些帮助,谢谢!
转载请注明出处
http://blog.csdn.net/u010183402/article/details/47864497
guowei.liu