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