初识爬虫框架 Scrapy
Posted Python知识圈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识爬虫框架 Scrapy相关的知识,希望对你有一定的参考价值。
第一时间关注 Python 技术干货!
“ 阅读文本大概需要 3.1 分钟
今天带大家了解下 Scrapy 框架,先解答三个问题:什么是 Scrapy 框架呢?它有什么作用呢?为什么需要使用它?
Scrapy 是 Python 开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取 web 站点并从页面中提取结构化的数据。
Scrapy 用途广泛,可以用于数据挖掘、监测和自动化测试。
为什么需要使用它?Scrapy 是一个写好的框架,不用重复造轮子,scapy 底层是异步框架 twisted ,吞吐量高,并发是最大优势。
Scrapy 安装
我电脑上同时装了 py2 和 py3,在 py3 环境里安装 Scrapy,使用以下命令。
python3 -m pip install Scrapy
如果你的电脑只安装了一个 python 版本,直接使用 pip install xxx 即可。
如果上面方法安装失败的话就分下面两步骤安装:
1 首先安装 Twisted ,使用以下命令
python3 -m pip install Twisted
命令安装报错的话就去对应网站选择对应版本下载 whl,我的 python3.6,系统是 64 位,所以我下载的是 Twisted‑18.7.0‑cp36‑cp36m‑win_amd64.whl。下载后使用 pip 命令安装 whl 文件。
2 安装 scrapy 框架
python3 -m pip install scrapy
创建爬虫项目
创建储存 scrapy 文件夹 scrapypy3,cmd 进入到路径,用 scrapy startproject 命令新建项目。(温馨提示:代码显示不全的话向右轻轻滑动即可查看全部代码)
F:\>cd F:\scrapypy3
F:\scrapypy3>scrapy startproject pjt1
New Scrapy project 'pjt1', using template directory 'e:\\py3\\lib\\site-packages\\scrapy\\templates\\project', created in:
F:\scrapypy3\pjt1
You can start your first spider with:
cd pjt1
scrapy genspider example example.com
F:\scrapypy3>
Scrapy 项目目录结构
新建的爬虫项目文件有以下部分组成,将整个文件在编辑器 Pycharm 中打开看得很明显,文件后面我做了中文解释。
pjt1/
scrapy.cfg # 爬虫项目的配置文件
pjt1/ # python 爬虫项目核心代码
__init__.py # 爬虫项目初始化文件
items.py # 爬虫项目的数据容器文件,定义获取的数据
middlewares.py # 爬虫项目的中间件文件
pipelines.py # 爬虫项目的管道文件,主要用来对items里面定义的数据进行进一步的加工与处理
settings.py # 爬虫项目设置文件
spiders/ # 爬虫项目中爬虫部分相关的文件
__init__.py # 爬虫项目中爬虫部分的初始化文件
创建项目参数
刚才用 scrapy startproject 创建了爬虫项目,创建的时候我们也可以加入一些参数,具体有哪些参数呢?我们可以在命令行通过 scrapy startproject -h查看,以下常见的命令给出了相应的中文注释。(温馨提示:代码显示不全的话向右轻轻滑动即可查看全部代码)
F:\scrapypy3>scrapy startproject -h
Usage
=====
scrapy startproject <project_name> [project_dir]
Create new project
Options
=======
--help, -h show this help message and exit
Global Options
--------------
--logfile=FILE log file. if omitted stderr will be used # 指定日志文件
--loglevel=LEVEL, -L LEVEL
log level (default: DEBUG) # 日志等级,默认 DEBUG 等级
--nolog disable logging completely # 不显示日志信息
--profile=FILE write python cProfile stats to FILE
--pidfile=FILE write process ID to FILE
--set=NAME=VALUE, -s NAME=VALUE
set/override setting (may be repeated)
--pdb enable pdb on failure
常用工具命令
Scrapy 中,工具命令分为两种,一种为全局命令,一种为项目命令。
全局命令
在不进入Scrapy 爬虫项目所在目录的情况下,运行 scrapy -h,在commands下会出现所有的全局命令。
F:\scrapypy3>scrapy -h
Scrapy 1.5.1 - no active project
Usage:
scrapy <command> [options] [args]
Available commands:
bench Run quick benchmark test # bench命令比较特殊,实为项目命令。
fetch Fetch a URL using the Scrapy downloader # 通过“scrapy fetch 网址” 用来显示爬虫爬取的过程。
genspider Generate new spider using pre-defined templates
runspider Run a self-contained spider (without creating a project) # 实现不依托Scrapy的爬虫项目,直接运行一个爬虫文件。
settings Get settings values # 通过settings命令查看Scrapy对应的配置信息。
shell Interactive scraping console # 通过shell命令可以启动Scrapy的交互终端
startproject Create new project # 创建新的爬虫项目
version Print Scrapy version # 显示Scrapy的版本相关信息
view Open URL in browser, as seen by Scrapy # 实现下载某个网页并用浏览器查看的功能。
[ more ] More commands available when run from project directory
Use "scrapy <command> -h" to see more info about a command
项目命令
首先进入一个已经创建的 Scrapy 爬虫项目,运行 scrapy -h 显示项目中可用命令。在展示出来的命令中,包括了上面讲到的全局命令。全局命令既可以在非 Scrapy 爬虫项目文件夹中使用,同时也可以在 Scrapy 爬虫项目文件夹中使用,而 Scrapy 项目命令一般只能在 Scrapy 爬虫项目文件夹中使用。去掉全局命令,剩下的就是Scrapy项目命令。
所以,Scrapy 的项目命令主要有:bench、check、crawl、edit、genspider、list、parse。
F:\scrapypy3>cd pjt1
F:\scrapypy3\pjt1>scrapy -h
Scrapy 1.5.1 - project: pjt1
Usage:
scrapy <command> [options] [args]
Available commands:
bench Run quick benchmark test # 可以测试本地硬件的性能
check Check spider contracts # 使用check命令,可以实现对某个爬虫文件进行合同(contract)检查。
crawl Run a spider # 通过crawl命令来启动某个爬虫,启动格式是“scrapy crawl爬虫名”。
edit Edit spider # 通过Scrapy中的edit命令,我们可以直接打开对应编辑器对爬虫文件进行编辑
fetch Fetch a URL using the Scrapy downloader
genspider Generate new spider using pre-defined templates # 使用genspider命令来创建Scrapy爬虫文件,这是一种快速创建爬虫文件的方式
list List available spiders # 列出当前可使用的爬虫文件。
parse Parse URL (using its spider) and print the results # 实现获取指定的URL网址,并使用对应的爬虫文件进行处理和分析。
runspider Run a self-contained spider (without creating a project)
settings Get settings values
shell Interactive scraping console
startproject Create new project
version Print Scrapy version
view Open URL in browser, as seen by Scrapy
Use "scrapy <command> -h" to see more info about a command
这篇文章给大家讲了下 Scrapy 框架的安装和常用的命令,这只是初步了解,之后会在实战中使用,项目实战才是我们的最终目的。
此文章对你有点帮忙的话希望大家能多给点支持,关注、点赞、转发都是对我的一种支持,有什么问题欢迎在后台联系我,也可以在后台加入技术交流群,群里有大神,可以一起交流学习。
推荐阅读
brucepk
1.Python 技术分享
2.Python 爬虫分享
3.资料、工具共享
以上是关于初识爬虫框架 Scrapy的主要内容,如果未能解决你的问题,请参考以下文章