scrapy爬虫框架及运行流程
文章目录
- 1 scrapy 简介
- 1.1 什么是爬虫?
- 1.2 浏览网页的过程中发生了什么?
- 1.3 scrapy爬虫框架
- 1.4 scrapy爬虫框架优势
- 2 scrapy 构架图
- 3 Scrapy构架流程
- 4 scrapy 运作过程
- 4.1 实现步骤
- 4.1.1 工程创建
- 4.1.2 创建爬虫
- 4.1.3 生成文件
- 4.1.4 运行爬虫
- 4.1.5 列出所有爬虫
- 4.1.6 获得配置信息
- 4.2 爬虫流程分析
- 5 Selenium八种元素定位方式
- 5.1 查看页面元素
- 5.2 元素定位
- 5.2.1 id定位
- 5.2.2 name 定位
- 5.2.3 class定位
- 5.2.4 tag定位
- 5.2.5 link 定位
- 5.2.6 partical_link定位
- 5.2.7 xpath定位
- 5.2.8 css定位
1 scrapy 简介
1.1 什么是爬虫?
爬虫相当于在互联网上爬行的蜘蛛,如果遇到需要的资源,那么它就会抓取下来(html内容);模拟浏览器快速访问页面内容。
1.2 浏览网页的过程中发生了什么?
例:浏览器输入http://www.baidu.com
- 1、根据配置的DNS获取www.baidu.com对应的主机ip;
- 2、根据端口号知道跟服务器的那个软件进行交互;
- 3、百度的服务器接收客户端请求;
- 4、给客户端主机一个响应(html内容)——html,css,js
- 5 、浏览器根据html内容解释值型,粘是出华丽的页面;
1.3 scrapy爬虫框架
scrapy是一个纯python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。
scrapy最吸引人的地方在于它是一个框架,任人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。
1.4 scrapy爬虫框架优势
- 1) 用户只需要定制开发几个模块,就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常方便。
- 2) srapy使用了TWisted异步网络框架来处理网络通讯,加快网页下载速度,不需要自己实现异步框架和多线程等,并且包含了各种中间件接口,灵活完成各种需求。
2 scrapy 构架图
- crapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。
- Scheduler(调度器): 它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。
- Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理。
- Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器)。
- Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方。
- Downloader Middlewares(下载中间件):你可以当作是一个可以自定义扩展下载功能的组件。
- Spider Middlewares(Spider中间件):你可以理解为是一个可以自定扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Responses;和从Spider出去的Requests)。
3 Scrapy构架流程
代码写好,程序开始运行
1 引擎:Hi,Spider,你要处理哪个网站?
2 Spider:老大要我处理xxx.com。
3 引擎:你把第一个需要处理的URL给我吧。
4 Spider:给你,第一个URL是xxx.com。
5 引擎:HI!调度器,王这有request请求你帮我排序入队一下。
6 调度器:好的,正在处理你等一下。
7 引擎:HI!调度器,把你处理好的request请求给我。
8 调度器:给你,这是我处理好的request。
9 引擎:hi!下载器,你按照老大的下载中间件的设置帮我下载一下这个request请求。
10 下载器:好的!给你,这是下载好的东西。(如果失败:sorry,这个request下载失败了。然后引擎告诉调度器,这个request下载失败了,你记录以下,我们待会儿再下载)
11 引擎:hi!Spider,这是下载好的东西,并且已经按照老大的下载中间件处理好了,你自己处理一下(注意!这儿responses默认是交给def parse()这个函数处理的)
12 Spider:(处理完毕数据之后对需要跟进的URL),HI,引擎,王这里有两个结果,这个是我需要跟进的URL,还有这个是我获取到的item数据。
13 引擎:hi!管道,王这儿有个item你帮我处理一下!调度器!这是需要跟进的URL你帮我处理下,然后从第四步开始循环,直到获取完老大需要的全部信息。
14 管道‘’调度器:好的,现在就做!
4 scrapy 运作过程
4.1 实现步骤
4.1.1 工程创建
scrapy startproject xxx
cd xxx #进入爬虫项目文件下
tree
4.1.2 创建爬虫
scrapy genspider xxx(爬虫名) xxx.com(爬取域)
4.1.3 生成文件
scrapy crawl xxx -o xxx.json(生成某种类型的文件)
4.1.4 运行爬虫
scrapy crawl xxx
4.1.5 列出所有爬虫
scrapy list
4.1.6 获得配置信息
scrapy setting[option]
4.2 爬虫流程分析
- 1 确定url地址;
- 2 获取页面信息;(urllib,requests)
- 3 解析页面提取所需要的数据;(正则表达式,bs4,xpath)
- 4 保存到本地(csv,json,pymysql,redis)
- 5 清洗数据(删除不必须的内容----正则表达式);
5 Selenium八种元素定位方式
5.1 查看页面元素
打开网页,鼠标点击右键,在显示框中选择inspect,就可以看到整个页面的html代码,鼠标移动到页面中自己想要选择的位置,右侧相应内容的代码段会蓝色高亮显示。
5.2 元素定位
5.2.1 id定位
find_element_by_id()
5.2.2 name 定位
find_element_by_name()
5.2.3 class定位
find_element_by_class_name()
5.2.4 tag定位
find_element_by_tag_name()
5.2.5 link 定位
find_element_by_link_text()
5.2.6 partical_link定位
find_element_by_partical_link_name()
5.2.7 xpath定位
find_element_by_xpath()
5.2.8 css定位
find_element_by_css_selector()
scrapy爬虫框架及运行流程相关推荐
- 搜狗词库爬虫(2):基础爬虫框架的运行流程
系列目录: 搜狗词库爬虫(1):基础爬虫架构和爬取词库分类 项目Github地址:github.com/padluo/sogo- 各模块对应的内容如下: getCategory.py,提取词库分类ID ...
- 一、scrapy爬虫框架——概念作用和工作流程 scrapy的入门使用
scrapy的概念和流程 学习目标: 了解 scrapy的概念 了解 scrapy框架的作用 掌握 scrapy框架的运行流程 掌握 scrapy中每个模块的作用 1. scrapy的概念 Scrap ...
- Python Scrapy爬虫框架实战应用
通过上一节<Python Scrapy爬虫框架详解>的学习,您已经对 Scrapy 框架有了一个初步的认识,比如它的组件构成,配置文件,以及工作流程.本节将通过一个的简单爬虫项目对 Scr ...
- python scrapy框架 抓取的图片路径打不开图片_Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码...
大家可以在Github上clone全部源码. 基本上按照文档的流程走一遍就基本会用了. Step1: 在开始爬取之前,必须创建一个新的Scrapy项目. 进入打算存储代码的目录中,运行下列命令: sc ...
- 崔老哥python scrapy爬虫框架入门
Scrapy 爬虫框架入门案例详解 Scrapy入门 创建项目 创建Spider 创建Item 解析Response 使用Item 后续Request 保存到文件 使用Item Pipeline 源代 ...
- python的scrapy爬虫模块间进行传参_小猪的Python学习之旅 —— 4.Scrapy爬虫框架初体验...
小猪的Python学习之旅 -- 4.Scrapy爬虫框架初体验 Python 引言: 经过前面两节的学习,我们学会了使用urllib去模拟请求,使用 Beautiful Soup和正则表达式来处理网 ...
- Scrapy爬虫框架视频学习
文章目录 Scrapy爬虫框架 1. 框架架构 1.1 Scrapy框架介绍 1.2 Scrapy架构图 1.3 Scrapy框架模块功能 1.4 Scrapy的运作流程(容易理解的介绍) 2. Sc ...
- scrapy爬虫框架教程(二)-- 爬取豆瓣电影
前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大家讲解一个完整爬虫的流程. 工具和环境 语言:python 2 ...
- Scrapy爬虫框架学习_intermediate
一.Scrapy爬虫框架介绍 Scrapy是功能强大的非常快速的网络爬虫框架,是非常重要的python第三方库.scrapy不是一个函数功能库,而是一个爬虫框架. 1.1 Scrapy库的安装 pip ...
最新文章
- 月薪 5 万清华姚班 NOI 金牌得主在线征友被群嘲,当代互联网相亲有多难
- 用python画梵高星空-谷歌AI:推进实例级别识别 (ILR)研究
- 使用excel批量创建android联系人
- AIProCon在线大会笔记之华为涂丹丹:华为云EI,行业智能化升级新引擎
- 【CodeForces - 616C】The Labyrinth(bfs,并查集,STLset)
- mysql计算相邻的差值_MySQL如何计算相邻两行某列差值
- matlab第二版实验七,matlab实验七.doc
- docker xware下载慢_win7环境下Docker快速构建及阿里云容器加速配置
- Mac新手使用技巧,键盘键位分布和快捷键
- Linux acpi off学习的必要
- 您有一份来自阿里云达摩院的邀请函待查收!
- Java面试八股文(素材来自网络)
- 前富士康CEO程天纵:创新来自长尾,创业源于创客!
- 用冰封服务器安装系统,如何使用冰封一键在线重装系统
- IT名企面试:微软笔试题
- error: binding reference of type int to const int discards qualifiers
- 银联收单清算体系和处理流程
- excellvba引用计算机用户名,EXCEL VBA 取当前登录 用户名的多种实现方法
- 新房装修如何知道是否需要更换电线
- ArrayList源码解读