scrapy scrapy是什么?scrapy是框架类似于车
基于异步框架的高效网络采集
最强大的框架一个也没有
scrapy框架结构
Engine控制某个模块之间的数据交换,基于条件触发事件Spider分析Downloader返回的响应(Response )
生成" scraped item "
生成附加的爬网请求(Request )
需要用户编写配置代码
Spider Middleware的目的:请求和项的重新处理功能。 修改、放弃、添加请求、爬网项目
需要用户编写配置代码Scheduler对所有的爬网请求进行调度管理Item Pipelines通过流水线方式处理Spider生成的爬网项目。
由一系列操作顺序(如管线)组成,每个操作都是ItemPipeline类型
操作包括清理、检查、复检项目中的HTML数据,以及将数据保存到数据库中
需要用户编写配置代码
Downloader根据请求下载网页的Downloader Middleware目的:实现用户可在Engine、计划程序和Downloader之间设置的控制功能:修改、废弃、新请求或SSL
-解决方案:脱机安装并运行pip install xxx.whl scrapy bench报纸: win32
解决方案:要在pip install pywin32中创建scrapy项目,请使用命令行cd导航到要在其中创建scrapy项目的文件夹
执行命令: scrapy startproject xxx (项目名称) )。
要创建爬虫文件,请使用命令行cd进入scrapy项目的根文件夹下
执行命令: scrapy genspider Reptile_name (爬虫名) domain_name (域名) )。
注意
爬行动物的名称不能与项目名称相同
网站的域名是允许爬行动物采集的域名(限制爬行动物数据的采集范围) )。
导入爬行动物文件importscrapy#scrapy以创建爬行动物。 从scrapy.Spider --继承- -作为最基础的类scrapy有五个爬行动物classxicidailispider (scrapy.spider ) 3360name='xicidaider om ' ] # resport _ URLs (可以不使用)=[ ' http://www.xici daili.com/' ] #必须从其开始采集的解析响应数据提取数据、网址等
正则表达式(基础很难掌握) ) ) ) )。
从xpath表达式HTML中提取数据(scrapy的默认数据提取方法) )。
从CSS表达式HTML中提取数据(不建议将scrapy CCS表达式转换为xpath表达式并使用) )。
response.XPath (’. get ) ) get ) )得到一个元素getall 多个元素提取数据) :
scrapy crawl xxx (爬虫名) )。
yeldscrapy.request(next_URL,callback=self.parse )生成器requests.get ) ) )
运行爬虫
scrapy crawl xxx (爬虫名(-o xxx.json/.csv/. xml scrapy通用命令说明格式startproject创建新的工程scrapy startproject xxx_Spider项目名称) genspider创建爬行动物scrapy gen spider reprepider me )域名)创建settings以获取爬虫配置信息scrapy genspider [options] 获取crawl并运行爬行动物scrappider的list与项目中的所有爬行动物scrapy listshell启动URL调试命令行scrapy shell [url]requests库vsscrapyframework Python爬行动物的两个重要技术途径
两者都很容易使用,文档丰富,入门简单
它们都没有处理js、提交表单、支持验证码等功能。 (可扩展) ) )。
点击不同的requestsscrapy页面级爬虫网站级功能库框架同时进行研究是不够的,性能差、并发性好,性能高的是页面下载对爬虫结构的定制灵活,一般定制灵活深度定制非常困难、非常容易获得、入门有点困难的技术路线选择非常小的需求、requests库不太小的需求、scrapy框架定制非常高的需求(
差|同时性好,性能高
重点在于页面下载|爬虫类的结构
定制灵活性|常规定制灵活性,深度定制困难
获得足够简单|入门有点困难技术路线选择非常小的需求、requests库不过小的需求、scrapy框架定制度高的需求(不考虑规模)、自构建框架、requests scrapy