您的位置:首页 > Web前端 > HTML

python代码爬取html网页之scrapy框架

2019-02-18 15:20 489 查看

scrapy 爬虫框架

scrapy是个能够帮助用户实现专业网络爬虫的爬虫框架,不同于小编之前介绍的requests、Beautifulsoup、re这些函数功能库,可实现网站级爬虫,但对于处理js、提交表单、应对验证码等功能还有望扩展。

安装

scrapy爬虫框架的安装方法与其它第三方库无区别

#在cmd或anaconda prompt上运行即可
pip install scrapy

命令执行

#scrapy命令行格式
scrapy <command> [options] [args]
命令 说明
scrapy startproject <name> [dir] 创建一个新爬虫项目,自动生成一系列文件目录,name指定项目名称
scrapy genspider [option] <name> <domain> 创建一个爬虫,domain指定所要爬取的网页url,option是可选命令操作符,name指定爬虫名称
scrapy settings [option] 获取爬虫配置信息,option是可选命令操作符
scrapy runspider [option] <spider_file> 运行爬虫程序,option是可选命令操作符,spider_file指定需要运行的文件,要有py后缀(旧版本用的是scrapy crawl <spider>)

以上仅介绍了4个常用的scrapy命令,其余5个bench,fetch,shell,view,version自行在命令行窗口运行‘scrapy’查看

框架结构讲解

执行scrapy startproject 命令后,自动地在指定目录里生成了一堆文件,让人无从下手,接下来讲解一下scrapy爬虫框架。

文件中经常出现的Response类、Requests类、Item类

Requests对象表示一个HTTP请求,由spider生成,由downloader执行。


而Response对象表示一个http响应,由downloader生成,由spider处理。

Item对象表示一个从HTML页面中提取的信息内容由spider生成,再由Item Pipline处理。Item类似字典类型,可按照字典类型操作。

从上图可以看出engine、downloader、scheduler模块已经是别人写好且完善,我们无需修改。一般我们主要配置在spiders文件夹中自己生成爬虫程序与pipelines.py如何输出数据。

值得注意的是对于文件修改,如果运行时出现了异常,看看是否自己的修改与setting.py的规定不符。scrapy默认支持CSS Selector解析页面。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: