1、scrapy库:python第三方库,功能强大
(1)安装:管理员身份运行cmd 输入:pip install scrapy
可能会在安装Twisted出错,可以单独 pip install twisted (Linux系统是可以的,但是在win系统下需要MC++编译环境,因此可以下载Twisted-20.3.0-cp38-cp38-win_amd64.whl选择本地安装,需要cd更改目录到相应的文件中,文件说明:对应python 3.8 64位)
(2)不是一个函数功能库,而是一个框架,是一个软件结构和功能组件集合,约束了一个模板,包括七个部分,称为“5+2”模块,“5”:spoders ; item pipelines ; engine; downloader;scheduler ; “2”:downloader middleware;
通过3个数据流进行连接;
用户需要编写spiders、item piplines和downloader模块
2、requests vs scrapy
相同点:都可以进行页面请求和爬取;可用性好,简单;都没有处理js、提交表单、应对验证码等功能;
不同点:前者为网页级爬虫;后者为网站级爬虫;前者为功能库,后者为框架;
前者并发性性能差,后者较好;前者重点在于页面下载,后者在于爬虫结构;前者定制灵活,后者深度定制时较复杂;
3、scrapy常用的命令(可以在cmd中使用)
(1)命令格式:scrapy 命令 【options ] [ args]
命令包含:startproject ;genspider ;settings; crawl(运行) ;list ;shell
一个工程可包括多个爬虫
(2)采用命令行格式而不是图形界面,更容易自动化,适合脚本控制
4、scrapy爬虫的使用步骤:
创建一个工程和spider模板 -> 编写spider -> 编写item pipeline -> 优化配置
5、步骤中涉及的类:
request类:表示http请求,由spider生成,由downloader执行;对象包括:url,method,headers,body,meta,copy();
response类:表示http相应,由downloader生成,spider处理;对象包括:url,status,headers,body,flags,request,copy();
item类:表示从html页面提取的信息内容,由spider生成,item pipeline处理;类似字典类型
6、提取信息的方法有很多,
1、简单实例:
步骤:建立工程->生成爬虫->配置产生的spider-> 运行爬虫,获取网页