scrapy分页抓取网页(Python应用场景Scrapy爬虫框架课程特色时间(4小时))
优采云 发布时间: 2021-10-21 04:03scrapy分页抓取网页(Python应用场景Scrapy爬虫框架课程特色时间(4小时))
Python应用场景
Scrapy爬虫框架
课程特色
时间就是生命,专注就是本质(4小时,完成了Scrapy爬虫必备知识点的讲解)
完整的课程体系(应用场景、Scrapy架构、分页爬虫、全站爬虫、爬虫伪装)
案例教学(深入浅出,以案例为导向,学以致用)
讲师问答(拒绝助教,讲师当天解答)
课程适合人群
拥有Py的基本语法和面向对象开发的思想,其他语言的开发者,回归浪子的人,想一夜暴富的人
建筑与环境建设
文章Scrapy 简介
Scrapy 组件介绍
pip安装scrapy
Scrapy 简介
用于屏幕抓取和网页抓取的快速、高级 Python 框架,用于抓取网站并从页面中提取结构化数据,可用于数据挖掘、监控和自动化测试,并可根据特定需求进行个性化定制. Scrapy架构图:
Scrapy 组件介绍 Scrapy Engine(引擎):用于处理整个系统的数据传输,是整个系统的核心部分。
调度器(Scheduler):用于接受引擎发送的Request请求,将其压入队列,当引擎再次请求时返回。
Downloader(下载器):用于请求引擎发送的Request对应的网页内容,并将获取到的Responses返回给Spider。
Item Pipeline(管道):负责处理Spider中获取的实体,清洗数据,保存需要的数据。下载器
Middlewares(下载器中间件):主要用于处理Scrapy引擎和下载器之间的请求和响应。
SpiderMiddlewares(爬虫中间件):主要用于处理Spider Responses和Requests
pip安装scrapy
正常情况下通过pip show scrapy查看是否安装,如果安装则显示安装信息,否则不显示任何信息
通过pip install scrapy安装爬虫框架(可能会抛出以下异常)
根据异常提示:ERROR: MICROSOFT VISUAL C++ 9.0 IS REQUIRED (UNABLE TO FIND VCVARSALL.BAT)。GET IT FROM 需要下载缺失的window组件,视频学习资料中提供
第一个爬虫项目
文章内容
创建一个scrapy项目
创建蜘蛛解析器
项目功能模块介绍
配置用户代理伪装请求
启动爬虫获取数据
创建一个scrapy项目
虽然是cmd命令创建的,但是可以通过scrapy -h查询相关子命令,最后通过scrapy startproject豆瓣就可以创建项目了
按照上面的提示创建Spider解析器:cd豆瓣,然后在项目中执行:scrapy genspider example就可以创建Spider对象了
细心的朋友会发现douban_spider默认会存放在douban.spider目录下。用pycharm IDE打开,会发现项目的结构如下:
项目功能模块介绍scrapy.cfg:配置文件spiders:存放你的Spider文件,也就是你爬取的py文件
items.py:相当于一个容器,更像是一个字典 middlewares.py:定义下载器
Middlewares(下载器中间件)和Spider Middlewares(蜘蛛中间件)的实现pipelines.py:Define Item
Pipeline的实现实现了数据的清洗、存储和校验。settings.py:全局配置
配置用户代理伪装请求
settings.py 配置User-Agent相关参数,否则爬取失败。
启动爬虫获取数据
在cmd dos窗口启动爬虫,默认会下载douban_spider中配置的start_urls地址
Xpath 语法介绍
文章内容
Xpath 简介
Xpath 语法
Xpath 实践
Xpath 简介
XPath 是一种用于在 XML 文档中查找信息的语言。XPath 用于浏览 XML 文档中的元素和属性。实际上,HTML 是一种特殊的 XML。因此,在学习 XPath 时,您需要了解基本的 HTML 和 XMLXPath。使用路径表达式在 XML 文档中导航。
XPath 收录一个标准函数库
XPath 是 XSLT 中的主要元素
XPath 是 W3C 标准
Xpath 语法
Xpath 实践
Xpath 获取有价值的数据
文章内容
豆瓣电影页面分析
首页下载实现
前5部电影的数据如下
豆瓣电影页面分析为大家讲解了如何在XML文档中查找信息,具体来说,您已经学会了如何获取元素、内容、属性,以及如何通过标签属性进行过滤和过滤。本章讲解如何通过xpath获取豆瓣数据
首页下载实现
前5部电影的数据如下
物品模型包数据
文章在目录中创建Item模型层
封装爬取的数据
yield 的语法介绍
在创建Item模型层之前,我们可以拿到第一页的数据,但是只能在控制台打印出来。Scrapy中还有一个Item模块,就是模型层,主要完成值数据的封装,然后写入数据库
对抓取到的数据进行封装,将抓取到的数据存放在豆瓣Item对象中,然后交给item_list,最后返回Item_list
yield 的语法介绍
具有 yield 的函数是*敏*感*词*。它不同于普通的功能。生成*敏*感*词*看起来像一个函数调用,但在调用 next() 之前不会执行任何函数代码(在 for 循环中,next() 将被自动调用。))开始执行。虽然执行流程还是按照函数的流程执行,但是每次执行yield语句都会被中断,并且会返回一个迭代值。下一次执行将从下一个 yield 语句开始。好像一个函数在正常执行过程中被yield多次中断,每次中断都会通过yield返回当前的迭代值。
产量和自动翻页
文章内容
收益优势
收益优化回报数据
收益优势
收益的好处是显而易见的。将函数重写为*敏*感*词*可以获得迭代能力。与使用类实例保存状态来计算下一个next()值相比,不仅代码简洁,执行流程也非常清晰。
在Scrapy爬虫框架中,yield有一个自然的使用场景,因为我们不知道爬虫每次获取数据的大小。如果爬虫每次都返回,数据量会非常大。这时候如果用yield来优化代码,代码会非常简洁高效
收益优化回报数据