文章目录

  • 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爬虫框架及运行流程相关推荐

  1. 搜狗词库爬虫(2):基础爬虫框架的运行流程

    系列目录: 搜狗词库爬虫(1):基础爬虫架构和爬取词库分类 项目Github地址:github.com/padluo/sogo- 各模块对应的内容如下: getCategory.py,提取词库分类ID ...

  2. 一、scrapy爬虫框架——概念作用和工作流程 scrapy的入门使用

    scrapy的概念和流程 学习目标: 了解 scrapy的概念 了解 scrapy框架的作用 掌握 scrapy框架的运行流程 掌握 scrapy中每个模块的作用 1. scrapy的概念 Scrap ...

  3. Python Scrapy爬虫框架实战应用

    通过上一节<Python Scrapy爬虫框架详解>的学习,您已经对 Scrapy 框架有了一个初步的认识,比如它的组件构成,配置文件,以及工作流程.本节将通过一个的简单爬虫项目对 Scr ...

  4. python scrapy框架 抓取的图片路径打不开图片_Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码...

    大家可以在Github上clone全部源码. 基本上按照文档的流程走一遍就基本会用了. Step1: 在开始爬取之前,必须创建一个新的Scrapy项目. 进入打算存储代码的目录中,运行下列命令: sc ...

  5. 崔老哥python scrapy爬虫框架入门

    Scrapy 爬虫框架入门案例详解 Scrapy入门 创建项目 创建Spider 创建Item 解析Response 使用Item 后续Request 保存到文件 使用Item Pipeline 源代 ...

  6. python的scrapy爬虫模块间进行传参_小猪的Python学习之旅 —— 4.Scrapy爬虫框架初体验...

    小猪的Python学习之旅 -- 4.Scrapy爬虫框架初体验 Python 引言: 经过前面两节的学习,我们学会了使用urllib去模拟请求,使用 Beautiful Soup和正则表达式来处理网 ...

  7. Scrapy爬虫框架视频学习

    文章目录 Scrapy爬虫框架 1. 框架架构 1.1 Scrapy框架介绍 1.2 Scrapy架构图 1.3 Scrapy框架模块功能 1.4 Scrapy的运作流程(容易理解的介绍) 2. Sc ...

  8. scrapy爬虫框架教程(二)-- 爬取豆瓣电影

    前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大家讲解一个完整爬虫的流程. 工具和环境 语言:python 2 ...

  9. Scrapy爬虫框架学习_intermediate

    一.Scrapy爬虫框架介绍 Scrapy是功能强大的非常快速的网络爬虫框架,是非常重要的python第三方库.scrapy不是一个函数功能库,而是一个爬虫框架. 1.1 Scrapy库的安装 pip ...

最新文章

  1. 月薪 5 万清华姚班 NOI 金牌得主在线征友被群嘲,当代互联网相亲有多难
  2. 用python画梵高星空-谷歌AI:推进实例级别识别 (ILR)研究
  3. 使用excel批量创建android联系人
  4. AIProCon在线大会笔记之华为涂丹丹:华为云EI,行业智能化升级新引擎
  5. 【CodeForces - 616C】The Labyrinth(bfs,并查集,STLset)
  6. mysql计算相邻的差值_MySQL如何计算相邻两行某列差值
  7. matlab第二版实验七,matlab实验七.doc
  8. docker xware下载慢_win7环境下Docker快速构建及阿里云容器加速配置
  9. Mac新手使用技巧,键盘键位分布和快捷键
  10. Linux acpi off学习的必要
  11. 您有一份来自阿里云达摩院的邀请函待查收!
  12. Java面试八股文(素材来自网络)
  13. 前富士康CEO程天纵:创新来自长尾,创业源于创客!
  14. 用冰封服务器安装系统,如何使用冰封一键在线重装系统
  15. IT名企面试:微软笔试题
  16. error: binding reference of type int to const int discards qualifiers
  17. 银联收单清算体系和处理流程
  18. excellvba引用计算机用户名,EXCEL VBA 取当前登录 用户名的多种实现方法
  19. 新房装修如何知道是否需要更换电线
  20. ArrayList源码解读

热门文章

  1. MyBatis面试题(2022最新版)
  2. sql server之pivot函数
  3. socketpair理解
  4. 动态规划:青蛙跳台阶和翻译字符串
  5. ffmpeg volume滤镜改变音量
  6. Jina AI 创始人肖涵博士:揭秘 Auto-GPT 喧嚣背后的残酷真相
  7. 工作交接,你不知道的那点事
  8. Adobe Dreamweaver CS5安装步骤
  9. 今日话题:京东百亿收购1号店,能够与阿里对抗吗?
  10. JPG格式转换为EPS格式