【Python | 边学边敲边记】第四次:初识爬虫框架Scrapy
本系列上一篇:【Python | 边学边敲边记】第三次:URL去重策略
今天给大家分享的是,Python里的爬虫框架Scrapy学习,包含python虚拟环境的搭建、虚拟环境的使用、Scrapy安装方法详解、Scrapy基本使用、Scrapy项目目录及内容基本介绍,let's go!
二、Python爬虫框架Scrapy简介推荐查看Scrapy中文帮助文档:点击 阅读原文 静下心来学习!
1#维基百科看Scrapy
三、看代码,边学边敲边记虚拟环境、Scrapy框架1.新建一个虚拟环境
2'''
3Scrapy(SKRAY-pee)是一个免费和开源网络爬行框架Python编写的。最初设计用于Web抓取,它还可
4以用于使用API或作为通用Web爬网程序提取数据。它目前由网络抓取开发和服务公司ScrapinghubLtd.维护
5。
6Scrapy项目体系结构是围绕“Spider”构建的,它们是自包含的爬虫,可以获得一组指令。遵循其他框架的精
7神,不重复自己的框架,例如Django,它允许开发人员重用他们的代码,从而更容易构建和扩展大型爬行项
8目。Scrapy还提供了一个Web爬行shell,开发人员可以使用它来测试他们对站点行为的假设。
9(英译汉有点尴尬!真的想学,还是好好看上面的帮助文档吧)
10'''
下面 操作之前你需要准备好:
(1) 你的python
版本是3.x,最好系统里只有一个python环境,后面所有学习笔记都基于py3
的。
(2)python
环境里先安装virtualenv
模块,基本方法pip install virtualenv
。
(3)选择好虚拟环境的安装目录(我选的是H盘目录下的env
文件夹,建议你选的目录路径里最好不要有中文)。
1PSH:\env\>virtualenvspiderenv
2Usingbaseprefix'c:\\users\\82055\\appdata\\local\\programs\\python\\python36'
3NewpythonexecutableinH:\env\spiderenv\Scripts\python.exe
4Installingsetuptools,pip,wheel...done.
5注:如果系统中有两个python环境(py2和py3),新建基于py3的虚拟环境方法
6virtualenv-python=你的Python3安装目录(精确到python.exe)spiderenv(虚拟环境名称)
安装完成后再自己选择的目录下会多出一个文件夹(虚拟环境),我这里为H:\env\spiderenv
,后面所有爬虫学习过程中需要的模块、接口都将pip
(安装)在里面。
进入到目录H:\env\spiderenv\Scripts
(我的虚拟环境目录),按住shift
+鼠标右键,打开powershell
或者cmd
(如果是powershell
就先输入cmd
),再输入activate
,进入虚拟环境,你会发现在路径前面多了一个括号里面是你的虚拟环境名称,表示你进入了虚拟环境。具体看下面:
1#注:打开powershell的可以参照下面操作
2PSH:\env\spiderenv\Scripts>cmd
3MicrosoftWindows[版本10.0.17134.112]
4(c)2018MicrosoftCorporation。保留所有权利。
5
6H:\env\spiderenv\Scripts>activate
7(spiderenv)H:\spiderenv\Scripts>
安装scrapy
模块(下面操作都是在虚拟环境下):
方法一:直接pip安装(最简单,安装慢,可能出错)
1pipinstallscrapy
方法二:轮子(wheel)安装(比较简单,安装速度还可以,基本不出错)
点击这里下载scrapy的.whl
文件,然后移动到你的虚拟环境目录下(比如我的就移动到H:\env\spiderenv\Scripts
),
1pipinstallScrapy-1.5.1-py2.py3-none-any.whl
方法三:豆瓣源安装(比较简单,安装速度快,方便,推荐)
1pipinstall-ihttps://pypi.douban.com/simple/scrapy
3.快速进入虚拟环境方法
安装virtualenvwrapper
模块,用于管理我们所建的虚拟环境
1#windows下安装方法
2pipinstallvirtualenvwrapper-win
3#其他环境下安装
4pipinstallvirtualenvwrapper
安装完成后,打开控制面板
- >系统
-> 高级系统设置
- > 环境变量
-> 系统变量
-> 新建
,在新建系统环境变量对话框
中输入如下
1变量名:WORKON_HOME
2变量值:你的虚拟环境安装目录
3比如:我的虚拟环境spiderenv安装在H:\env目录下,我的变量值就为:H:\env\
4注:变量值最后一定要以\结尾,不然可能不会产生效果。
cmd
执行下面命令,即可简单快速进入虚拟环境: 1PSC:\Users\82055\Desktop>cmd
4.创建一个基于Scrapy框架的项目
2MicrosoftWindows[版本10.0.17134.112]
3(c)2018MicrosoftCorporation。保留所有权利。
4
5C:\Users\82055\Desktop>workon
6
7Passanametoactivateoneofthefollowingvirtualenvs:
8==============================================================================
9spiderenv
10
11C:\Users\82055\Desktop>workonspiderenv
12(spiderenv)C:\Users\82055\Desktop>
13#注释:成功进入,退出虚拟环境命令为:deactivate
1#进入到自己的项目存放目录
2(spiderenv)H:\env>cdH:\spider_project
3
4#使用scrapy命令创建一个新工程
5(spiderenv)H:\spider_project>scrapystartprojectspider_bole_blog
6
7NewScrapyproject'spider_bole_blog',usingtemplatedirectory'h:\\env\\spiderenv\\
8lib\\site-packages\\scrapy\\templates\\project',createdin:
9H:\spider_project\spider_bole_blog
10#提示创建网站爬虫命令
11Youcanstartyourfirstspiderwith:
12cdspider_bole_blog
13scrapygenspiderexampleexample.com
创建成功后文件目录结构:
1spider_bole_blog/
2spider_bole_blog/
3spiders/
4__init__.py
5__init__.py
6items.py
7pipelines.py
8settings.py
9scrapy.cfg
目录功能基本介绍:
1spider_bole_blog/:该项目的python模块。之后我们将在此加入代码。
2spider_bole_blog/spiders/:放置spider代码的目录。
3spider_bole_blog/items.py:项目中的item文件。
4spider_bole_blog/pipelines.py:项目中的pipelines文件。
5spider_bole_blog/settings.py:项目的设置文件。
6scrapy.cfg:项目的配置文件。
创建一个jobbole
(伯乐在线)的爬虫项目文件:
1#进入项目文件
2(spiderenv)H:\spider_project>cdspider_bole_blog
3
4#执行命令,创建一个基于Srapy的伯乐在线的爬虫
5(spiderenv)H:\spider_project\spider_bole_blog>scrapygenspiderjobboleblog.jobbole.com
6
7Createdspider'jobbole'usingtemplate'basic'inmodule:
8spider_bole_blog.spiders.jobbole
执行完成后会在项目的spiders
目录下多出一个jobbole.py
文件,文件内容如下:
1#-*-coding:utf-8-*-
四、后言
2#编码
3importscrapy
4#导入scrapy包
5
6#继承scrapy.Spider的JobboleSpider爬虫类
7classJobboleSpider(scrapy.Spider):
8
9#用于区别Spider。该名字必须是唯一的,您不可以为不同的Spider设定相同的名字。
10name='jobbole'
11
12#允许下载(访问)域
13allowed_domains=['blog.jobbole.com']
14
15#包含了Spider在启动时进行爬取的url列表。
16#因此,第一个被获取到的页面将是其中之一。
17#后续的URL则从初始的URL获取到的数据中提取。
18start_urls=['http://blog.jobbole.com/']
19
20#是spider的一个方法。
21#被调用时,每个初始URL完成下载后生成的Response对象将会作为唯一的参数传递给该函数。
22#该方法负责解析返回数据(responsedata),提取数据(生成item)以及生成需要进一步处理的URL
23#的Request对象。
24defparse(self,response):
25pass
今天讲的东西涵盖面还比较广,特别是虚拟环境管理这块,virtualenvwrapper
还有很多命令,很实用,后面会慢慢给大家提及,大家也可以自己百度、谷歌查一下,另外,Scrapy
模块今天也算正式开始,go on!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。