




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python网络爬虫第二单元爬取动态网页教学概述概述动态网页,是指跟静态网页相对的一种网页编程技术。静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了(除非修改页面代码)。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。
动态网页是基本的html语法规范与Java、VB、VC等高级程序设计语言、数据库编程等多种技术的融合,以期实现对网站内容和风格的高效、动态和交互式的管理。因此,从这个意义上来讲,凡是结合了HTML以外的高级程序设计语言和数据库技术进行的网页编程技术生成的网页都是动态网页。第二单元爬取动态网页02爬取百度图片数据爬取漫画数据01情境一:爬取百度图片数据01030204情境概述知识准备案例讲解总结PART01情境概述情境一:爬取百度图片数据情境概述学习情境描述教学情境描述:通过对Scrapy、JSON、MySQL知识点的学习,对技术综合应用的操作,学习并掌握如何去区分静态网页和动态网页交互、去分析动态网页实际数据来源、去获取动态网页交互数据,最终达到:使用Scrapy获取动态数据源;使用JSON解析动态数据;使用PyMySQL存储动态结构化数据MySQL数据库。关键知识点:Python库环境管理;Scrapy网络交互;JSON数据格式;JSON数据解析;PyMySQL结构化存储。关键技能点:Scrapy网页及接口请求;JSON数据解析;MySQL结构化数据存储。情境一:爬取百度图片数据情境概述本节课的学习目标掌握Python模块库(Scrapy、JSON、PyMySQL等)安装管理应用。能区分静态网页和动态网页。能根据实际情况,定位动态数据来源。理解Scrapy框架体系。理解Scrapy网络爬虫框架及原理。掌握Scrapy项目系统配置及爬虫策略配置。能使用Scrapy进行网页和接口数据采集工作。能使用JSON解析动态数据源。能使用PyMySQL完成MySQL结构化数据存储。情境一:爬取百度图片数据情境概述本节课的任务书完成通过PIP命令安装及管理Scrapy、JSON、PyMySQL库。完成通过Scrappy获取列表数据、分页数据及多层级的汽车销售数据网页源代码。完成通过XPath格式化网页源文档,并获取对应类型的汽车销售数据。完成通过Pymysql将解析到的各车型销售数据结构化存储于本地MySQL中。情境一:爬取百度图片数据PART02知识准备情境一:爬取百度图片数据知识准备引导问题了解什么是动态网页,和静态网页有什么不同。如何定位动态网页数据源?如何获取动态网页数据源?动态网页数据是以什么样的格式或结构展现?如何解析动态网页数据?如何将动态数据在MySQL结构化存储?情境一:爬取百度图片数据知识准备知识点介绍ScrapyJSONPyMySQL情境一:爬取百度图片数据知识准备JSON情境一:爬取百度图片数据JSON介绍JSON(JavaScript
ObjectNotation,JS对象简谱)是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。JSON是DouglasCrockford在2001年开始推广使用的数据格式,在2005年-2006年正式成为主流的数据格式。JSON是存储和交换文本信息的语法,类似XML。JSON比XML更小、更快,更易解析。知识准备
JSON语法规则情境一:爬取百度图片数据JSON使用
JavaScript
语法来描述数据对象,但是JSON仍然独立于语言和平台。JSON语法是JavaScript语法的子集,包括以下内容:数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JSON支持以下数据结构:名/值对集合:这一数据结构由不同的键值对组成。无序的对象结构:多个名称/值构成的封装体,类似字典表。有序的值列表:包括数组,列表,向量或序列等等。知识准备
情境一:爬取百度图片数据JSON名称/值对JSON数据的书写格式是:名称/值对。名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值。语法如下所示:其中value所对应的值可以是:数字、字符串、逻辑值、数组、对象、null。具体描述如下:"name":value知识准备
情境一:爬取百度图片数据JSON对象JSON对象使用在大括号({})中书写,对象可以包含多个
key/value(键/值)对。其中:key必须是字符串,value可以是合法的JSON数据类型(字符串,数字,对象,数组,布尔值或null)。key和value中使用冒号(:)分割。每个key/value对使用逗号(,)分割。
数据结构如下:{"键名1":值1,"键名2":值2,……"键名n":值n}知识准备
情境一:爬取百度图片数据JSON数组JSON数组结构是用中括号“[]”括起来,中括号内部由0个或多个以英文逗号“,”分隔的值列表组成。数据结构如下:[{"键名1":值1,"键名2":值2},{"键名3":值3,"键名4":值4},……]知识准备
Python中使用JSON情境一:爬取百度图片数据
在Python中要操作JSON数据对象,需要使用json模块。
JSON模块为Python内置模块,在环境安装时已自动安装上,所以可以直接使用框架库,无需额外安装。
在json模块中,主要是对Python数据的编码和解码,分别对应函数:dumps()、loads()。知识准备
情境一:爬取百度图片数据dumps()json.dumps():对数据进行编码,将Python对象编码成JSON字符串。语法如下:Python对象转换为JSON数据会有类型转化,类型对照表如下:json.dumps(obj,skipkeys=False,ensure_ascii=True,check_circular=True,allow_nan=True,cls=None,indent=None,separators=None,encoding="utf-8",default=None,sort_keys=False,**kw)知识准备
情境一:爬取百度图片数据loads()json.loads():对数据进行解码,将JSON字符串解码成Python对象。语法如下:JSON数据转换为Python对象会有类型转化,类型对照表如下:json.loads(s[,encoding[,cls[,object_hook[,parse_float[,parse_int[,parse_constant[,object_pairs_hook[,**kw]]]]]]]])PART03案例讲解情境一:爬取百度图片数据案例讲解爬取百度图片数据情境一:爬取百度图片数据步骤:确定目标网页分析并确定目标数据安装环境构建项目编写数据采集程序编写数据存储程序运行程序效果截图案例讲解爬取百度图片数据情境一:爬取百度图片数据具体实操跟随教材内的步骤实施。PART04总结情境一:爬取百度图片数据总结总结情境一:爬取百度图片数据
本情景,主要介绍了Scrapy、JSON、PyMySQL的相关知识,通过对案例的学习,让同学们掌握
Scrapy、JSON、PyMySQL
的运用。情境二:爬取漫画数据01030204情境概述知识准备案例讲解总结PART01情境概述情境二:爬取漫画数据情境概述学习情境描述教学情境描述:通过对Selenium、PhantomJS、threading、Pillow知识点的学习,对技术综合应用的操作,学习并掌握如何去区分静态网页和动态网页交互、去分析动态网页实际数据来源、去模拟浏览器访问网页、模拟用户操作浏览器、去获取动态网页交互数据。达到本次最终目的:使用Selenium模拟浏览器与用户行为操作、使用PhantomJS提供无界面浏览器支持与滚动截屏支持、使用threading构建多线程数据采集、使用Pillow裁剪处理并保存目标图片。关键知识点:Python库环境管理;PhantomJS软件安装与配置;Selenium框架理解;Selenium原理;Selenium自动化操作;threading多线程构建与管理;Pillow图片裁剪与存储。关键技能点:PhantomJS软件安装与配置;Selenium自动化操作;threading多线程构建与管理;Pillow图片裁剪与存储。情境二:爬取漫画数据情境概述本节课的学习目标掌握Python模块库(Selenium、threading、Pillow等)安装管理应用。掌握PhantomJS软件安装与配置。能区分静态网页和动态网页。能根据实际情况,定位动态数据来源。理解Selenium自动化框架及原理。掌握Selenium运行环境和项目配置。能使用Selenium模拟浏览器操作和用户行为操作。能使用threading构建和管理多线程爬虫任务。能使用Pillow对图片进行裁剪和存储。情境二:爬取漫画数据情境概述本节课的任务书完成通过PIP命令安装及管理Selenium、threading、Pillow库。完成通过Selenium模拟浏览器请求,模拟用户行为操作,获取动漫作品的章节列表及章节漫画图片原型。完成通过threading构建和管理多线程爬虫任务。完成通过Pillow的相关模块完成对图片进行裁剪和存储操作。情境二:爬取漫画数据PART02知识准备情境二:爬取漫画数据知识准备引导问题网页中列表数据和图片加载方式有几种?分别是如何加载的,动态加载和静态加载的区别。如何定位动态网页列表数据源和图片数据源?除了Requests或Scrapy直接请求地址的方式,还可以通过哪些方式获取动态网页数据和图片数据?如何通过Selenium获取动态加载的网页图片?如何通过Selenium技术实现网页截屏?如何将图片进行裁剪并本地化存储?情境二:爬取漫画数据知识准备知识点介绍PhantomJSSeleniumthreadingPillow情境二:爬取漫画数据知识准备PhantomJS情境二:爬取漫画数据PhantomJS介绍PhantomJS是一个无界面的、可脚本编程的WebKit浏览器引擎。它可以在Windows、macOS、Linux和FreeBSD系统上运行。使用QtWebKit作为后端,它为各种Web标准提供快速和本地支持:DOM处理、CSS选择器、JSON、画布和SVG。PhantomJS有如下特点:PhantomJS是一个基于webkit内核、无界面的浏览器,即它就是一个浏览器,只是其内的点击、翻页等人为相关操作需要程序设计实现;PhantomJS提供JavascriptAPI接口,可以通过编写JS程序直接与webkit内核交互;PhantomJS的应用:无需浏览器的Web测试、网页截屏、页面访问自动化、网络监测。知识准备
PhantomJS安装与配置情境二:爬取漫画数据下载软件PhantomJS是一款无头浏览器,是一款软件。官网下载地址:
下载phantomjs-2.1.1-windows.zip后解压到本地文件夹即可。环境配置定位到phantomjs.exe所在地址,此处演示地址为:C:\Software\phantomjs-2.1.1-windows\bin,将其添加在系统环境变量中。/download.html知识准备
情境二:爬取漫画数据验证安装使用快捷键打开CMD命令窗口,输入查看PhantomJS的版本。如图:知识准备
PhantomJS运行脚本情境二:爬取漫画数据PhantomJS是一款无头浏览器,也可以使用PhantomJS命令行工具运行JS脚本。PhantomJS运行脚本案例如图:知识准备Selenium情境二:爬取漫画数据Selenium框架介绍Selenium是支持web浏览器自动化的一系列工具和库的综合项目。它提供了扩展来模拟用户与浏览器的交互,用于扩展浏览器分配的分发服务器,以及用于实现
W3CWebDriver规范的基础结构,该规范允许您为所有主要Web浏览器编写可互换的代码。Selenium的核心是
WebDriver,这是一个编写指令集的接口,可以在许多浏览器中互换运行。知识准备
Selenium搭建情境二:爬取漫画数据安装Selenium
可以使用PIP安装Python的Selenium库。语法如下:验证安装可以使用PIP验证Selenium库的安装成果。语法如下:pipinstallSeleniumpiplist知识准备
情境二:爬取漫画数据下载WebDriver二进制文件通过WebDriver,Selenium支持市面上所有主流的浏览器,如Chrom(ium)、Firefox、InternetExplorer、Opera和Safari。尽管并非所有浏览器都对远程控制提供官方支持,但WebDriver尽可能使用浏览器的内置自动化支持来驱动浏览器。常见浏览器及其对应的WebDriver二进制文件下载地址:知识准备
情境二:爬取漫画数据配置二进制文件环境通过将包含WebDriver二进制文件的文件夹添加到系统path环境变量中,Selenium将能够找到其他二进制文件,而无需您的测试代码来定位驱动程序的确切位置。如图:验证Path打开命令行窗口,输入WebDriver名称,查看驱动程序启动的输出,如图:知识准备
WebDriver通信介绍情境二:爬取漫画数据WebDriver通过一个驱动程序与浏览器对话。通信基本方式是:直接通信,WebDriver通过驱动程序向浏览器传递命令,然后通过相同的路径接收信息。结构如图:知识准备
Selenium应用情境二:爬取漫画数据实例化WebDriver定位元素操控浏览器等待Keyboard知识准备threading情境二:爬取漫画数据线程介绍多线程类似于同时执行多个不同程序。线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。线程在执行过程中与进程还是有区别的,每个独立的进程有一个程序运行的入口、顺序执行序列和程序的出口。多线程运行有如下优点:使用线程可以把占据长时间的程序中的任务放到后台去处理。用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度。程序的运行速度可能加快。在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。知识准备
threading模块情境二:爬取漫画数据Python3通过两个标准库_thread和threading提供对线程的支持。threading模块除了包含_thread模块中的所有方法外,还提供的其他方法:threading.currentThread():返回当前的线程变量。threading.enumerate():返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。threading.activeCount():返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。知识准备
threading模块情境二:爬取漫画数据threading模块同样提供了Thread类来处理线程,Thread类提供了以下方法:run():
用以表示线程活动的方法。start():启动线程活动。join([time]):
等待至线程中止。这阻塞调用线程直至线程的join()方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。isAlive():
返回线程是否活动的。getName():
返回线程名。setName():
设置线程名。知识准备Pillow情境二:爬取漫画数据Pillow介绍Pillow是一个友好的图形处理库。PythonPillow库为您的Python翻译增加了图像处理功能。此库提供广泛的文件格式支持、高效的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度建筑工人劳动合同(附创新技术培训内容)
- 二零二五年度国际酒店餐饮业劳务供应协议
- 二零二五年度生活垃圾清运与环保技术研发应用合同
- 电子商务平台代运营服务协议
- 采购合同辣椒采购合同
- 音乐课本中的歌曲背后的故事征文
- 专业保洁服务合作协议
- 简爱人物形象塑造分析:世界名著导读课程教案
- 人力资源招聘与培训流程说明
- 企业绿色信用修复服务协议
- 2024入赘协议书范本
- 2024届江苏省苏北七市(南通)高三二模考试英语试题读后续写思路分析My best examination 讲义
- 2024年益阳医学高等专科学校单招职业技能测试题库及答案解析
- 《新能源发电技术第2版》 课件全套 朱永强 第1-10章 能源概述- 分布式发电与能源互补
- 【音乐】缤纷舞曲-青年友谊圆舞曲课件 2023-2024学年人音版初中音乐七年级上册
- DB-T29-260-2019天津市建筑物移动通信基础设施建设标准
- 水利工程施工方案(完整版)
- DB11-T 1200-2023 超长大体积混凝土结构跳仓法技术规程
- 2024年内蒙古化工职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 城市智慧交通管理系统
- 青少年人工智能技术水平测试一级04
评论
0/150
提交评论