Python网络爬虫技术项目教程课标教案_第1页
Python网络爬虫技术项目教程课标教案_第2页
Python网络爬虫技术项目教程课标教案_第3页
Python网络爬虫技术项目教程课标教案_第4页
Python网络爬虫技术项目教程课标教案_第5页
已阅读5页,还剩74页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

九、教学进度表周次学时教学内容第一周2项目一 认识网络爬虫 任务一网络爬虫引言 一、网络爬虫的起源 二、网络爬虫的基本原理 三、爬虫法律问题四、Python网络爬虫的步骤 第二周4项目一 认识网络爬虫任务二Web知识了解 一、HTTP的工作原理 二、发送请求报文 三、返回响应 四、HTTP消息 五、网页地址URL 六、网页结构 任务三Python爬虫环境搭建 一、Python简介 二、安装Python 三、安装PyCharm 案例1——PyCharm项目文件 四、网络爬虫模块库 案例2——安装爬虫模块库第三周2项目二 Python入门知识 任务一Python基本语法与命令 一、程序头文件 二、语法规则 三、数据输入输出 四、运算符 案例1——学生人数统计 第四周2项目二 Python入门知识任务二数据类型 一、数字 二、字符串 三、列表 四、区间 五、元组 六、字典 七、集合 八、bytes类型 案例2——动物园的基本情况 第五周2项目二 Python入门知识任务三函数和程序结构 一、函数 案例3——计算商品增长率 二、程序结构 案例4——计算商品增长率 项目实战 实战1学生信息统计 实战2比较Python网址第六周1.5项目三 发送网页请求 任务一Urllib发送网页请求 一、基本HTTP请求 案例1——获取商商查网站数据。 案例2——设置请求超时时间。 二、Request网络请求 案例3——发送Request请求获取官网数据 案例4——添加头信息获取视频网页数据 三、Handler方法发送请求 案例5——Handler方法发送请求获取大众点评网站数据四、设置代理IP 案例6——通过代理IP发送官网请求 五、身份验证 案例7——获取MAN网页Cookie信息 案例8——保存MSN网站Cookie文件 案例9——加载卡路里查询Cookie信息 第七周1.5项目三 发送网页请求任务二Urllib3发送网页请求 一、创建代理对象 二、request方法发送请求 三、获取响应属性 案例10——获取哔哩哔哩登录界面的响应。案例11——不同请求方法获取知乎响应 四、定义请求头 案例12——获取带请求头的响应 五、设置代理IP 案例13——使用代理IP发送请求 六、自动重试 案例14——百度网址发送重试请求 七、重定向 案例15——自定义重定向策略 案例16——禁用自动重定向 第八周3项目三 发送网页请求任务三Requests发送网页请求 一、发送标准的HTTP请求 案例17——访问快手短视频网 二、返回响应消息 案例18——访问滴答漫画网页响应消息 三、发送GET请求方法 案例19——网易云搜索歌曲网页 案例20——发送带url参数的请求 四、其他请求方法 案例21——POST请求方法发送data提交表单数据 五、复杂请求头 案例22——发送定制请求头信息 六、上传文件 案例23——上传二进制数据 七、会话保持 案例24——通过session对象和requests发送GET请求 项目实战 实战1urllib发送请求访问网易有道网 实战2urllib3发送请求访问东方财富网 实战3request发送请求访问千里马招标网第九周3项目四 解析数据 任务一Urllib解析URL 一、Urllib解析URL 案例1——搜索音乐网址解析 案例2——搜索音乐网址解析与构建 案例3——网易云音乐飙升榜网址拼接 二、URL转码 案例4——添加字典编码参数 案例5——网址编码与解码 任务二json解析JSON数据 一.Python编码为JSON 案例6——创建商商查网站数据JSON文件 二.JSON解码为Python 案例7——商商查网站数据字典与JSON转换第十周3项目四 解析数据任务三requests解析网页 一、HTML文档结构 二、网页解析 案例8——Python网页响应数据 任务四正则表达式解析网页 一、正则表达式模式 二、使用re模块实现正则表达式 三、字符串查找 案例9——字符查找对象演示。 案例10——区分大小写字符查找 案例11——输出数字查找结果表达式 第十一周4项目四 解析数据任务五XPath解析网页 一、XPath概述 二、XPath网页解析 案例12——解析知乎网站文本代码 三、获取节点信息 案例13——获取HTML文本的所有节点信息。 四、节点关系 案例14——获取属性节点和属性值 五、XPath运算符 案例15——利用大于等于运算符查找指定节点信息 任务六BeautifulSoup解析网页 一、创建BeautifulSoup对象 案例16——lxml解析天气预报html 二、通过属性获取节点内容 案例17——获取天气预报HTML文本 三、根据节点关系获取节点 案例18——获取天气预报HTML关联节点四、查找节点内容 案例19——获取天气预报符合条件的节点内容五、通过CSS选择器查找节点内容 案例20——类选择器查找天气预报HTML节点 项目实战 实战1解析学校网页HTML文件 实战2爬取销售热门图书名称第十二周2项目五存储爬虫数据 任务一网页保存到文本文件 一、保存文件 二、关闭文件 三、写文本文件 案例1——下载MSN网页文件。 任务二下载网页到本地文件 一、urllib下载网页文件 案例2——下载爱奇艺网页文件 二、wget下载网页文件 案例3——下载红叶图片文件 第十三周4项目五存储爬虫数据任务三保存网页到数据文件 一、Pandas数组数据 二、Pandas下载网页文件 案例4——下载汽车之家网站流量数据 三、保存到Excel文件 四、保存csv文件案例5——下载饲料产量文件任务四保存网页到数据库一、安装MySQL数据库二.登录MySQL服务器三、创建数据库四、Python连接到数据库五、MySQL数据表管理案例6——保存爬取百度是网页到数据库第十四周2项目五存储爬虫数据项目实战实战1下载王者荣耀图片 实战2获取查询网邮编区号 实战3获取地区车牌号第十五周3项目六 异常处理 任务一错误和异常调试 一、错误 二、异常 案例1——序列索引异常 任务二异常捕获与处理语句 一、try-except语句 案例2——捕获索引超出范围异常 二、raise语句 案例3——用raise语句定义异常 三、assert语句 案例4——用assert语句定义异常 第十六周3项目六 异常处理任务三异常处理模块库一、Urllib异常处理模块案例5——处理URLError异常。二、Urllib3异常处理模块 案例6——urllib3禁用警告。 三、request异常处理模块 案例7——处理request响应错误。 项目实战 实战1输出异常原因 实战2处理超时访问异常第十七周2项目七 Scrapy网络爬虫框架 任务一Scrapy网络爬虫框架基础认知 一、Scrapy网络爬虫框架基础 二、Scrapy常用命令 三、创建Scrapy项目 第十八周2项目七 Scrapy网络爬虫框架任务二Scrapy网络爬虫文件 一、Spider类 二、配置网络爬虫 三、启动网络爬虫 案例1——发送HTTP请求。 四、提取数据 项目实战 实战1提取查询结果标题名称十、主讲教师:xxx(教授)、xxx(副教授)、xxx(副教授)、xxx(副教授)、xxx(副教授)、xxx(副教授)、xxx(讲师)、xxx(讲师)、xxx(讲师)、xxx(讲师)、xxx(讲师)、xxx(助教)等第二部分教学内容项目一认识网络爬虫教学目的和要求了解网络爬虫的起源与基本原理;了解HTTP的工作原理;熟理解网页请求过程;掌握Python的环境搭建。教学重点、难点重点:(1)网络爬虫引言;(2)Web知识了解。难点:Python爬虫环境搭建。教学内容项目一 认识网络爬虫 任务一网络爬虫引言 网络爬虫(也称为网页蜘蛛、自动索引器或蠕虫)是一段自动化脚本,它们被设计用来模拟人类浏览互联网的行为,以便在网页上检索和收集信息。这些信息可以是文本内容、图片、视频、价格信息、用户评论等,几乎任何在线可访问的数据都可以成为网络爬虫的目标。一、网络爬虫的起源 二、网络爬虫的基本原理 三、爬虫法律问题1.尊重网站使用条款:2.限制爬取范围:3.避免侵入性操作:4.基于正当目的:四、Python网络爬虫的步骤 1.需求分析:2.分析网页结构:3.安装和导入所需库:4.编写Python代码(1)配置请求参数:(2)发送HTTP请求:(3)解析数据:(4)保存数据:(5)循环爬取:5.异常处理:6.优化爬虫:7.遵守规则:8.测试和调试:9.部署和维护:任务二Web知识了解 HTTP定义了Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP采用请求/响应模型。客户端向服务器发送一个请求报文,请求报文包括请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应内容包括协议的版本、成功或错误代码、服务器信息、响应头部和响应数据。一、HTTP的工作原理 HTTP请求/响应的步骤如下。1.客户端连接到Web服务器2.发送HTTP请求3.服务器接收请求并返回HTTP响应4.释放TCP连接5.客户端浏览器解析HTML内容网络爬虫的工作流程二、发送请求报文 1.请求行2.请求头3.空行4.请求体三、返回响应 参数说明如下:1.状态行2.消息报头3.空行4.响应正文四、HTTP消息 1.普通报头2.请求报头3.响应报头4.实体报头五、网页地址URL 网页与网址六、网页结构 1.HTML2.CSS3.JScript任务三Python爬虫环境搭建Python是一种高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python搭建用于爬虫的环境时,首先需要从官网下载并安装Python解释器、PyCharm编辑器。其次,根据具体需求,使用pip安装所需的爬虫库,如requests、beautifulsoup4等。最后,需要导入所需的爬虫库。 一、Python简介 二、安装Python1.Python下载官网下载界面2.软件安装3.安装检查 三、安装PyCharm 1.下载PyCharm2.安装PyCharm3.配置PyCharm案例1——PyCharm项目文件 【操作步骤】1.新建项目文件2.新建目录文件3.新建Python文件4.程序编写和运行运行结果四、网络爬虫模块库Python在编写网络爬虫时,常用的库有requests、BeautifulSoup、Scrapy和Selenium等。1.常用模块库分类根据功能Python网络爬虫基本组件介绍模块库:(1)HTTP请求库:用于发送请求和获取网页内容。(2)HTML解析库:用于解析网页结构并提取所需数据(3)数据存储机制:用于保存爬取的数据。(4)高级的网络爬虫2.使用pip工具安装爬虫相关库(1)安装Urllib3模块库3.在PyCharm中安装Urllib3模块库4.用import导入模块库(1)import语句(2)from…import语句

案例2——安装爬虫模块库【操作步骤】1.打开项目文件2.安装requests模块库3.安装BeautifulSoup模块库4.安装Scrapy模块库安装常用爬虫模块库列表项目二Python入门知识教学目的和要求了解Python的基本语法;掌握Python的基本数据类型;灵活应用Python的函数;灵活应用Python的程序结构。教学重点、难点重点:(1)Python基本语法与命令;(2)数据类型。难点:(1)函数和程序结构;(2)项目实战。教学内容项目二 Python入门知识 任务一Python基本语法与命令 计算机编程语言和人们日常使用的自然语言有所不同,自然语言在不同的语境下有不同的理解,而计算机要根据编程语言执行任务,就必须保证编程语言写出的程序不存在歧义,所以,任何一种编程语言都有自己的一套语法。一、程序头文件 1.解释器声明2.编码方式声明3.模块依赖声明4.全局配置选项二、语法规则 1.行宽2.空行3.空格符号(1)在二元运算符两边各空一格[=,-,+=,==,>,in,isnot,and]。(2)在函数的参数列表中,逗号、#和冒号之后要有空格。(3)函数的参数列表中,默认值等号两边不要添加空格。(4)左括号之后,右括号之前不要加多余的空格。(5)字典对象的左括号之前不要多余的空格。(6)不要使用额外的空格。三、数据输入输出 在Python中的输入输出可以通过内置的input()和print()函数来完成。(1)input函数(2)print函数四、运算符1.赋值运算符2.算术运算符3.逻辑运算符4.比较(关系)运算符5.位运算符6.Python成员运算符7.Python身份运算符8.Python运算符优先级案例1——学生人数统计任务二数据类型 在Python中,标准数据类型包括Number(数字)、String(字符串)、list(列表)、range(区间)、tuple(元组)、set(集合)、dictionary(字典)。一、数字 1.变量赋值2.数字类型3.查询对象类型二、字符串字符串是Python中最常用的数据类型。1.创建字符串2.访问字符串中的值3.连接字符串4.转义字符 字符串索引值三、列表1.列表的定义2.列表索引与切片 Python自动补全功能四、区间 五、元组 1.直接创建2.使用tuple()函数创建元组六、字典 1.直接定义2.函数创建七、集合 1.直接创建2.set函数创建八、bytes类型 案例2——动物园的基本情况 任务三函数和程序结构 函数是一段可重复使用的代码块,它可以接收输入参数并返回结果。而程序结构是指组织和管理代码的方式,包括顺序结构、选择结构和循环结构等。Python函数和程序结构是Python编程的基础,可以将代码组织成可重用的单元,使程序更加模块化和易于维护。一、函数 自定义函数有以下规则步骤:函数代码块以def关键词开头,后接函数标识符名称和圆括号()任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数函数的第一行语句可以选择性地使用文档字符串(用于存放函数说明)函数内容以冒号:起始,并且缩进。案例3——计算商品增长率 二、程序结构 3种基本结构流程图(a)顺序结构;(b)选择结构;(c)循环结构1.顺序结构2.选择结构3.循环结构(1)for循环。(2)while循环。案例4——计算商品增长率 项目实战 实战1学生信息统计 本实战通过def分别定义两个函数,输入两个学生信息,比较年龄大小、性别是否相同。实战2比较Python网址本实战输入多个网址,循环结构检查网址是否相同、转换网址字符串,输出相同部分和不相同的部分。项目三发送网页请求教学目的和要求掌握Urllib、Urllib3、requests发送网络请求函数的使用方法;熟练掌握函数各个参数的使用方法;重点掌握通过代理发送网页请求的过程;重点掌握通过身份验证发送网页请求的过程;学会网页数据的下载方法并熟练使用。教学重点、难点重点:(1)Urllib发送网页请求;(2)Urllib3发送网页请求。难点:(1)Requests发送网页请求;(2)项目实战。教学内容项目三 发送网页请求 任务一Urllib发送网页请求 Urllib是Python的标准库之一,要使用urllib发送网页请求,首先需要导入urllib库中的request模块。importurllib.requesturllib.requset是HTTP请求模块,可以用来模拟发送请求,只需要传入URL及额外参数,就可以模拟浏览器访问网页的过程。一、基本HTTP请求 1.基本请求函数2.显示网页响应内容案例1——获取商商查网站数据。案例2——设置请求超时时间。二、Request网络请求 HTTP中的headers被称为消息头,包含general(基本信息)、responseHeader(响应头)、requestHeader(请求头)、paramer(请求参数)。其中,general基本信息中包含:requesturl:请求的url。requestmethod:请求的方式。statuscode:响应状态码。remoteaddress:远程地址,包含IP和端口。1.发起请求案例3——发送Request请求获取官网数据2.设置请求头案例4——添加头信息获取视频网页数据 三、Handler方法发送请求 Handler方法发送请求的步骤1.创建处理器对象2.创建自定义opener对象3.发送请求案例5——Handler方法发送请求获取大众点评网站数据四、设置代理IP 案例6——通过代理IP发送官网请求 五、身份验证 1.模拟浏览器自动登录获取Cookie案例7——获取MAN网页Cookie信息 2.保存Cookie案例8——保存MSN网站Cookie文件 3.加载Cookie案例9——加载卡路里查询Cookie信息 任务二Urllib3发送网页请求 urllib3是一个功能强大的HTTP客户端库,它提供了很多用于发送HTTP请求的方法。要使用urllib3发送网页请求,需要先导入urllib3库。#导入模块importurllib3Urllib3模块库主要使用代理IP进行网络请求的访问,所以访问之前需要创建一个代理IP对象。同时,Urllib3模块库提供了很多Python标准库Urllib没有的重要特性:线程安全。代理IP。客户端SSL/TLS验证。文件分部编码上传。协助处理重复请求和HTTP重定位。支持压缩编码。支持HTTP和SOCKS代理。一、创建代理对象 二、request方法发送请求 三、获取响应属性 案例10——获取哔哩哔哩登录界面的响应。案例11——不同请求方法获取知乎响应 四、定义请求头 案例12——获取带请求头的响应 五、设置代理IP 案例13——使用代理IP发送请求六、自动重试 1.retries参数2.Retry库案例14——百度网址发送重试请求 方法1:使用重试默认参数retries定义重试次数;方法2:Retry()函数定义重试次数total、重试间隔backoff_factor异常信息等参数。七、重定向 案例15——自定义重定向策略 案例16——禁用自动重定向 任务三Requests发送网页请求Requests模块库的作用是模拟浏览器发送请求,主要用于爬取小规模、数据量少,同时对爬取速度不敏感的网站。浏览器发送请求的流程如图所示,Requests模块库发送请求的流程如图所示。简单请求是默认不发送Cookie和HTTP等认证信息的请求;复杂网络请求是发送请求时,在请求数据中添加参数,定义数据的类型、长度、编码等信息,实现服务器认证代理、请求内容、定制头等功能。一、发送标准的HTTP请求 案例17——访问快手短视频网 二、返回响应消息 案例18——访问滴答漫画网页响应消息三、发送GET请求方法 1.发送params请求数据案例19——网易云搜索歌曲网页 2.发送fields请求数据案例20——发送带url参数的请求 四、其他请求方法 案例21——POST请求方法发送data提交表单数据 五、复杂请求头 案例22——发送定制请求头信息 六、上传文件 案例23——上传二进制数据 七、会话保持 案例24——通过session对象和requests发送GET请求 项目实战 实战1urllib发送请求访问网易有道网 本实战访问网易有道网页(图),并添加请求头和加载Cookie信息。如果访问成功,则输出“访问成功!”;否则输出“访问失败!”。然后循环输出请求头,并将Cookie信息保存到名为“cookies.txt”的文件中。实战2urllib3发送请求访问东方财富网使用网络爬虫访问东方财富网(图),发送请求后不可能无期限地等待响应,超过以timeout参数设定的时间之后停止等待响应。在Urllib3中,通过代理对象,可以发送多个请求,timeout参数可以在发送请求时设置,也可以在创建代理对象时设置,这样所有的请求遵循超时时间设置。实战3request发送请求访问千里马招标网使用requests模块库访问千里马招标网(图3-25),定义了请求参数params、数据data和头信息headers。最后,使用requests.get()方法发送请求,并输出响应头和判断状态码。项目四解析数据 教学目的和要求能够利用Urllib解析URL;能够利用json解析JSON数据;能够利用requests解析网页;能够利用正则表达式编写简单的网页解析程序;能够利用XPath编写简单的网页解析程序;能够利用BeautifulSoup编写简单的网页解析程序。教学重点、难点重点:(1)Urllib解析URL;(2)json解析JSON数据。难点:(1)XPath解析网页;(2)BeautifulSoup解析网页。教学内容项目四 解析数据 任务一Urllib解析URL 当需要从网页抓取信息或者与WebAPI进行交互时,需要解析URL以提取特定信息,或者构造URL以发送请求。urllib.parse是Python中用于解析URL的模块,该模块定义的函数可分为两个主要门类:URL解析和URL转码。一、Urllib解析URL Urllib解析URL除了对URL分解之外,还包括URL构建和解析和修改URL路径。1.URL分解(1)urlparse()函数(2)urlsplit()函数案例1——搜索音乐网址解析 2.构建URL(1)urlunparse()函数(2)urlsplit()函数案例2——搜索音乐网址解析与构建 案例3——网易云音乐飙升榜网址拼接 二、URL转码 1.编码函数(1) 构建查询字符串(2)quote()函数(3)quote_plus()函数案例4——添加字典编码参数 2.解码函数案例5——网址编码与解码 任务二json解析JSON数据 在Python中,可以使用json模块来解析和处理JSON数据。一.Python编码为JSON 案例6——创建商商查网站数据JSON文件 二.JSON解码为Python 案例7——商商查网站数据字典与JSON转换 任务三requests解析网页 网页本身是由字符串组成的,因此,字符串是最常用的格式。在Requests模块库中,r.text输出HTTP响应内容的字符串形式,即url对应的页面内容。一、HTML文档结构 二、网页解析 案例8——Python网页响应数据 不同格式的响应数据任务四正则表达式解析网页 网络爬虫获取的网页内容HTML本质是字符串,处理字符串最基本的方法是通过相关的字符串函数,但效率很低,容易出错。除此之外,还可以使用正则表达式(RegularExpression)处理字符串。一、正则表达式模式 1.普通字符2.特殊字符3.限定符4.创建模式字符串二、使用re模块实现正则表达式 Python提供了re模块,用于实现正则表达式的操作。步骤如下:(1)使用re模块compile方法将模式字符串转换为Pattern对象。(2)使用该对象提供的方法进行字符串处理,也可以直接使用re模块提供的方法进行字符串处理。(3)获得验证结果,验证结果为一个Match(验证)对象。三、字符串查找 使用re模块提供的match()、seardh()、findall()和finditer()等函数查找字符串。1.使用match()函数进行查找案例9——字符查找对象演示。2.使用search()函数进行查找 案例10——区分大小写字符查找 3.使用findall()函数进行查找案例11——输出数字查找结果表达式 任务五XPath解析网页 随着互联网信息的爆炸性增长,网页数据抓取变得越来越重要。XPath是一种在Web开发和数据提取中广泛使用的技术,能够快速准确地从HTML或XML文档中选取特定的元素。XPath的选择功能十分强大,它提供了非常简洁明了的路径选择表达式。XPath相对于正则表达式显得更加简洁明了。一、XPath概述 1.XML文档2.lxml库二、XPath网页解析 XPath网页解析的步骤如下:(1)导入lxml库的etree模块:(2)案例化一个etree对象(3)将源码数据加载到etree对象。案例12——解析知乎网站文本代码 解析前的HTML文本三、获取节点信息 案例13——获取HTML文本的所有节点信息。 四、节点关系 1.路径表达式XML文档的节点关系2.查找节点信息3.属性节点4.XML节点轴案例14——获取属性节点和属性值 五、XPath运算符 路径表达式结合运算符可叠加使用,常用方法如下:(1)选取多属性的属性节点。(2)选取多个路径。案例15——利用大于等于运算符查找指定节点信息 任务六BeautifulSoup解析网页 安装解析器是为了加快html解析效率,BeautifulSoup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,如lxml、html5lib。lxml可以解析XML和HTML文档,将它们转换为Python中的元素树,以便进一步处理。html5lib是一个用来解析HTML文档的Python类库,支持HTML5以及最大程度兼容桌面浏览器。安装方法如下:pip3installlxmlpip3installhtml5lib一、创建BeautifulSoup对象 案例16——lxml解析天气预报html 运行结果二、通过属性获取节点内容 案例17——获取天气预报HTML文本 三、根据节点关系获取节点 案例18——获取天气预报HTML关联节点四、查找节点内容 1.find_all()方法案例19——获取天气预报符合条件的节点内容 2.其他的节点查找方法五、通过CSS选择器查找节点内容 案例20——类选择器查找天气预报HTML节点 项目实战 实战1解析学校网页HTML文件 某学校的网址为HYPERLINKhttp://www.××××.cn/,发送HTTP请求,解析网页信息。实战2爬取销售热门图书名称登录公司网站,如图所示,使用get()方法爬取首页数据,利用BeautifulSoup模块库的函数解析网页数据,输出销售热门图书名称。项目五存储爬虫数据教学目的和要求熟练掌握将网页保存到文本文件;熟练掌握将网页下载到本地文件;熟练掌握保存网页数据到数据库。教学重点、难点重点:(1)网页保存到文本文件;(2)下载网页到本地文件。难点:(1)保存网页到数据文件;(2)保存网页到数据库。教学内容项目五存储爬虫数据 任务一网页保存到文本文件 在Python中,我们可以使用urllib、urllib3和requests库来发送网络请求并获取网页信息。获取到的网页数据可以通过解析后进行保存。为了实现这个功能,Python提供了一些内置函数,如open(),可以用来创建、写入和读取文件。一、保存文件 二、关闭文件 三、写文本文件 案例1——下载MSN网页文件。 百度网页任务二下载网页到本地文件 在Python中,urllib模块库和wget模块库都提供了函数,实现从Web服务器下载数据到本地文件的功能。一、urllib下载网页文件 案例2——下载爱奇艺网页文件 TXT文件、HTML、PDF文件二、wget下载网页文件 案例3——下载红叶图片文件 任务三保存网页到数据文件在Python中进行网络爬虫时,Pandas库常用于数据处理和分析,它不仅简化了数据的操作过程,还增强了数据分析的能力,使爬取的数据能够更好地服务于数据分析和决策制定。OpenPyXl是一个用于读写Excel文件的库,它使得Python在处理Excel文件时更加高效和便捷。OpenPyXl、Pandas是Python的一个第三方库,使用前需要下载安装,使用最简单的pip工具安装,使用PyCharm编辑器安装Pandas模块库。当模块库安装完毕后,就可以被其他地方引用了,一般使用import命令导入模块,具体方式如下:importpandasimportopenpyxl 一、Pandas数组数据 1.Series2.DataFrame(1)DataFrame函数。(2)DataFrame属性。二、Pandas下载网页文件 案例4——下载汽车之家网站流量数据 三、保存到Excel文件 四、保存csv文件案例5——下载饲料产量文件饲料产量-产量数据网址任务四保存网页到数据库要将Python爬取的网址数据存储到数据库中,需要遵循以下步骤:安装数据库驱动程序:根据你要使用的数据库类型(如MySQL、SQLite、PostgreSQL等),安装相应的Python驱动程序。连接到数据库:使用安装的驱动程序连接到你的数据库。这通常涉及到提供数据库的地址、端口、用户名和密码等信息。创建表:在数据库中创建一个表,用于存储爬取到的数据。表的结构应该与要存储的数据相匹配。爬取数据:使用Python的爬虫库(如requests、BeautifulSoup等)爬取百度网址数据。插入数据:将爬取到的数据插入到数据库表中,编写SQL语句,将数据插入到表中。关闭数据库连接:在完成数据插入后,使用Connection.close()函数关闭与数据库的连接。一、安装MySQL数据库1.下载MySQL数据库2.安装MySQLMySQL官方下载页面二.登录MySQL服务器三、创建数据库四、Python连接到数据库五、MySQL数据表管理创建MySQL数据表需要以下信息:表名表字段名定义每个表字段1.创建数据表2.查看数据表3.插入数据4.存储过程5.游标存储案例6——保存爬取百度是网页到数据库项目实战实战1下载王者荣耀图片 登录王者荣耀网站,使用get()方法爬取首页,利用XPath模块库的函数解析网页数据,获取销售热门图书网址,并根据网址下载图书封面图片。下载的图片实战2获取查询网邮编区号 在查询网选择“首页”→“邮编区号”→“河北省”→“石家庄市”,进入河北省石家庄市的邮编区号大全网页,如所示,网址为/50/shijiazhuang/。使用Python网络爬虫爬取该网页中石家庄市的邮编区号数据。实战3获取地区车牌号在查询网选择全国各地车牌查询,如图所示,网址为/carlist.htm。使用Python爬取该网页中指定地区中的车牌号。项目六异常处理教学目的和要求学会Requests请求模块库的安装与加载;熟练掌握Requests发送请求函数的使用方法;学会网页响应数据的分析方法;重点掌握复杂网页请求过程;学会处理网页请求过程中的异常处理。教学重点、难点重点:(1)错误和异常调试;(2)异常捕获与处理语句。难点:(1)异常处理模块库;(2)项目实战。教学内容项目六 异常处理 如果程序出现运行错误或者输出结果与预期结果不一致,那么就需要对所编写的程序进行调试。因此,掌握一定的异常处理语句和程序调试方法是十分有必要的。任务一错误和异常调试 一、错误 程序运行出错二、异常 案例1——序列索引异常 运行结果任务二异常捕获与处理语句 当Python发生异常时需要捕获并处理它,否则程序会终止执行。捕捉异常可以使用try/except语句和raise语句等。一、try-except语句try-except结构在程序调试时很有用,下面对其进行简单介绍。1.try-except结构 2.try-except-else结构3.嵌套循环在Python中,允许在一个循环中嵌入另一个循环,这被称为循环嵌套。(1)try-except结构。(2)try-finally结构。案例2——捕获索引超出范围异常 二、raise语句 案例3——用raise语句定义异常 三、assert语句 案例4——用assert语句定义异常 任务三异常处理模块库常用的urllib、Urllib3、request模块库均包含异常处理模块。Python异常处理模块提供了一套机制来管理运行时出现的错误情况,确保程序能够优雅地处理异常情况,而不是遇到错误就立即崩溃。通过合理地使用异常处理,可以使程序更加健壮和可靠。一、Urllib异常处理模块1.URLError2.HTTPError案例5——处理URLError异常。二、Urllib3异常处理模块 案例6——urllib3禁用警告。 三、request异常处理模块1.常见异常错误 案例7——处理request响应错误。 项目实战 实战1输出异常原因 urllib.error是一个异常处理模块,检测请求是否报错,捕捉异常错误,进行重试或其他操作,保证程序不会终止。如果是非HTTPError,再捕获URLError异常,输出错误原因,最后用else来处理正常的逻辑。实战2处理超时访问异常由于在实际的爬取过程中,部分网站可能访问过慢,影响性能,可设置超时访问。如果在指定时间内正常访问,即输出获取数据的长度,如果超出指定时间,则抛出异常。下载图片文件项目七Scrapy网络爬虫框架教学目的和要求领会网络爬虫框架的概念;能够了解网络爬虫框架模块库的安装与加载;利用Scrapy命令编写简单的网页爬取程序。教学重点、难点重点:(1)Scrapy网络爬虫框架基础认知;(2)Scrapy网络爬虫文件。难点:提取查询结果标题名称。教学内容项目七 Scrapy网络爬虫框架 挖掘、信息处理或存储历史数据等一系列的程序中。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。任务一Scrapy网络爬虫框架基础认知 一、Scrapy网络爬虫框架基础 Scrapy整体框架二、Scrapy常用命令 下面介绍Scrapy常用命令。1.创建项目文件2.创建网络爬虫文件3.运行网络爬虫4.错误检查5.列出网络爬虫6.测试网页7.请求网页把网页源代码保存成文件,再用浏览器打开(调试工具)8.命令行交互模式shell9.解析网页的内容10.获取配置信息11.运行spider文件12.输出版本13.测试错误检查运行结果列出网络爬虫运行结果三、创建Scrapy项目 创建Scrapy项目任务二Scrapy网络爬虫文件 Scrapy网络爬虫文件Spider中包含一个用于下载的初始URL,如何跟进网页中的链接及分析页面中的内容、提取生成item的方法?利用Scrapy爬取数据的步骤如下:(1)建立一个Scrapy网络爬虫工程。(2)在工程中产生一个Scrapy。(3)配置产生的spider网络爬虫。(4)运行网络爬虫,获取网页。一、Spider类 二、配置网络爬虫 1.修改语言与时区配置2.设置时区不敏感3.Robots协议4.伪造成浏览器访问5.延迟抓取6.多线程抓取7.保存文件的中文格式三、启动网络爬虫 案例1——发送HTTP请求。 图书免费下载网址四、提取数据1.Scrapy提取数据 2.XPath提取数据3.CSS提取数据项目实战 实战1提取查询结果标题名称操作步骤:1.创建爬虫文件2.编写爬虫文件3.运行爬虫文件4.编辑爬虫文件运行项目Scrapy项目

《Python网络爬虫技术项目教程》课程教案纸授课题目项目一Python基础认知教学目的与要求教学目的:掌握Python的安装过程;掌握PyCharm的安装过程;熟练掌握Python的语法规范。教学要求:为后续学习Python积累必要的背景知识。教学重点与难点重点:(1)Python概述;(2)Python命令的组成。难点:程序结构。教学方法课堂演示、课堂练习、问答形式的教授法教学用具机房难点与重点讲解方法示例法项目导读Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆(GuidovanRossum)于20世纪90年代初设计,作为ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。教学内容项目一Python基础认知任务一Python概述☛

任务引入上大学后,很多老师、学长组建了不同的编程语言学习小组。小白牢牢抓住这个机遇,加入了Python学习小组学习Python。Python是获取网络数据的快捷方法之一,其中涉及的知识更是日后学习进阶课程不可或缺的基石。但首先要明白什么是Python、如何安装Python。☛

知识准备Python是一种高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python语言具有很强的可读性,相比其他语言经常使用英文关键字,它具有比其他语言更有特色的语法结构。一、Python简介二、安装Python1.Python下载2.软件安装3.安装检查官网下载界面三、安装PyCharm 1.下载软件2.安装PyCharm3.配置PyCharmPyCharm官方下载地址四、Python语法规范1.行宽2.空行3.空格4.换行5.缩进任务二Python命令的组成☛

任务引入小白已经完成Python及其编辑器的安装,需要进入该软件进行编程。要想使用Python软件进行编程,必须先了解编程语言的命令与规则。那么,Python程序中的基本命令有哪些?各有什么作用呢?☛

知识准备计算机编程语言和人们日常使用的自然语言有所不同,自然语言在不同的语境下有不同的理解,而计算机要根据编程语言执行任务,就必须保证编程语言写出的程序不存在歧义,所以,任何一种编程语言都有自己的一套语法。一、基本符号1.命令提示符2.常用指令二、常量与变量1.常量2.变量3.变量的输入/输出函数4.数据迭代输出三、数据类型1.数值2.字符串3.列表4.区间5.元组6.集合7.字典8.数据类型转换四、功能符号除命令输入必需的符号外,Python语言还有注释符号、续行符号、赋值符号等。1.注释符号2.续行符号3.赋值符号4.比较符号5.占位符任务三程序结构☛

任务引入小白参加第一次学习小组开会,大家互相传阅检查对方编写的程序,结果发现了很多繁冗实例。为了解决这种问题,Python语言引入了程序结构这个概念。那么,Python语言的程序结构有哪些?分别能实现什么功能呢?☛

知识准备程序结构就是程序的流程控制结构。对于一般的程序设计语言来说,程序结构大致可分为如图所示的顺序结构、选择结构和循环结构3种,Python语言也不例外。一、表达式语句1.表达式2.表达式语句3.逻辑表达式4.赋值语句5.人机交互语句二、顺序结构三、选择结构二分支结构的执行过程四、循环结构1.for循环2.while循环五、条件表达式六、程序的流程控制1.break命令2.continue命令项目实战实战输出百度网址利用加号拼接百度网址/?tn=15007***_3_dg。教学反映:课后分析:作业布置:参考资料[1].胡松涛著.《Python3网络爬虫实战》[M].北京:清华大学出版社,2020.7.[2].赵国生,王健著.《Python网络爬虫技术与实战》[M].北京:机械工业出版社,2021.1.[3].吕云翔,张扬著.《Python网络爬虫与数据采集》[M].北京:人民邮电出版社,2021.8.[4].吕云翔著.《Python网络爬虫:从入门到精通》[M].北京:人民邮电出版社,2023.7.[5].黄锐军著.《数据采集技术:Python网络爬虫项目化教程(第2版)用》[M].北京:高等教育出版社,2023.4.[6].柯晓昱,胡修远,林伟著.《人工智能应用基础<Python>项目式教程》[M].北京:电子工业出版社,2025.12.《Python网络爬虫技术项目教程》课程教案纸授课题目项目二网络爬虫基础认知教学目的与要求教学目的:掌握Python网络爬虫的应用与基本概念;了解HTTP的工作原理;熟练掌握URL的编码与解码;理解网页请求过程。教学要求:坚持课堂教学与课外活动相衔接,使学生能学以致用,理论联系实际。教学重点与难点重点:(1)网络爬虫概述;(2)HTTP。难点:(1)网页请求过程;(2)项目实战。教学方法课堂演示、课堂练习、问答形式的教授法教学用具机房难点与重点讲解方法示例法项目导读在互联网大数据时代,海量数据爆炸式地出现在网络中,给人们的生活带来极大的便利。但同时,海量的信息中大多数是无效的垃圾信息,相同信息一天产生数亿条的更新。如何在如此海量的信息碎片中得到真正需要的信息,成为人们的迫切需求。最简单的数据信息获取方式是使用人工操作浏览器搜索信息,但是单靠人工进行筛选不太现实,于是网络爬虫技术应运而生。通过该技术将相关的内容收集起来,再经过分析、筛选才能得到人们真正需要的信息。教学内容项目二网络爬虫基础认知 任务一网络爬虫概述☛

任务引入小白基本上每天晚上都会上论坛找电影,他想看“院线大片”+“最近十年”的所有电影,就按照分类查找想要看的电影,但是竟然没有多选,不能同时选择两个或多个分类进行查找,只能先选择分类“院线大片”,然后一年一年地查找。这样找了几天后,小白发现这种方法太费时费力了,后来通过网上搜索,他第一次知道了“网络爬虫”。于是,在强大的兴趣驱动下,他开始学习使用网络爬虫查找电影。那么,Python网络爬虫是什么?能实现什么功能呢?☛

知识准备网络爬虫是一种模拟浏览器发送网络请求、接收请求响应,按照一定的规则自动抓取互联网信息的程序。网络爬虫可以用来爬表格、爬图片、爬视频等数据,能通过浏览器访问的数据都可以通过网络爬虫获取。 一、网络爬虫的基本原理百度搜索界面二、网络爬虫系统框架 三、爬行策略 为提高工作效率,网络爬虫会采取一定的爬行策略,常用的爬行策略有深度优先策略、广度优先策略和最佳优先策略。1)深度优先策略2)广度优先策略3)最佳优先策略四、网络爬虫的分类1.通用网络爬虫2.聚焦网络爬虫3.增量式网络爬虫4.深层网络爬虫五、开源网络爬虫框架/项目1.Scrapy2.Cola3.Crawley4.MechanicalSoup5.PySpider6.Portia7.BeautifulSoup8.Spidy9.Garb任务二HTTP ☛

任务引入了解了网络爬虫的原理,小白还是对Python网络爬虫无从下手,觉得手动使用浏览器搜索简单,使用编程进行操作无法理解,不清楚如何模拟浏览器。为了解决上面的问题,需要引入HTTP这个概念,了解了这些定义,才能知道如何模拟浏览器。☛

知识准备HTTP定义了Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP采用请求/响应模型。客户端向服务器发送一个请求报文,请求报文包括请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应内容包括协议的版本、成功或错误代码、服务器信息、响应头部和响应数据。一、HTTP的工作原理 网络爬虫的工作流程HTTP请求/响应的步骤如下。1.客户端连接到Web服务器2.发送HTTP请求3.服务器接收请求并返回HTTP响应4.释放TCP连接5.客户端浏览器解析HTML内容二、Urllib模块库 三、URL定义 网页与网址1.网址格式2.拆分URL3.拼接URL四、URL编码设置 1.编码函数2.解码函数2022年冬奥会新闻任务三网页请求过程 ☛

任务引入了解了网页与HTTP的定义,小白对模拟浏览器发送网络请求的过程有了大概了解,但是对使用Python进行操作还是一头雾水,不清楚如何使用Python模拟、如何模拟浏览器发送网络请求。☛

知识准备网页请求过程分为两个环节,即发送请求和响应请求如图所示。一、发送请求报文 1.请求行2.请求头3.空行4.请求体二、返回响应 1.状态行2.消息报头3.空行4.响应正文三、HTTP消息 1.普通报头2.请求报头3.响应报头4.实体报头项目实战实战一搜索商品网址 苏宁易购首页网址:/,如图2-13所示,在搜索栏输入商品名称“手机”,编码搜索商品名称,使用该网址搜索数据。实战二搜索食品价格网址通过百度首页搜索“食品价格”,如图2-15所示,在搜索栏中显示该网页的网址:https:///s?tn=news&rtt=1&bsst=1&wd=食品价格&cl=2。教学反映:课后分析:作业布置:参考资料[1].胡松涛著.《Python3网络爬虫实战》[M].北京:清华大学出版社,2020.7.[2].赵国生,王健著.《Python网络爬虫技术与实战》[M].北京:机械工业出版社,2021.1.[3].吕云翔,张扬著.《Python网络爬虫与数据采集》[M].北京:人民邮电出版社,2021.8.[4].吕云翔著.《Python网络爬虫:从入门到精通》[M].北京:人民邮电出版社,2023.7.[5].黄锐军著.《数据采集技术:Python网络爬虫项目化教程(第2版)用》[M].北京:高等教育出版社,2023.4.[6].柯晓昱,胡修远,林伟著.《人工智能应用基础<Python>项目式教程》[M].北京:电子工业出版社,2025.12.《Python网络爬虫技术项目教程》课程教案纸授课题目项目三Urllib请求模块库的应用教学目的与要求教学目的:掌握网络请求函数的使用方法;熟练掌握函数各个参数的使用方法;重点掌握通过代理发送网页请求的过程;重点掌握通过身份验证发送网页请求的过程;学会网页数据的下载方法并熟练使用。教学要求:培养学生通过编程采集数据的综合应用能力,提高其自主学习能力和综合文化素养。教学重点与难点重点:(1)发送网页请求;(2)网页下载。难点:(1)下载Python学习网址;(2)下载公司网页HTML文件。教学方法课堂演示、课堂练习、问答形式的教授法教学用具机房难点与重点讲解方法示例法项目导读发送网页请求与接收请求的过程就和发微信与收到回复的过程类似。本项目使用Python代码模拟鼠标单击发送请求的过程。教学内容项目三Urllib请求模块库的应用 任务一发送网页请求☛

任务引入小白学习Python网络爬虫的一堆理论知识后,觉得需要进行具体操作才能灵活应用,想从最简单的Urllib请求模块库开始学起。那么,Urllib请求模块库中哪些函数可以实现网页请求的发起?不同网页请求函数有哪些异同呢?☛

知识准备利用urlopen()函数可以实现最基本请求的发起,如果请求中需要加入Headers等信息,则需要利用更强大的复杂网络请求函数Request()来构建一个请求。 一、基本HTTP请求 1.基本请求函数公司网址界面2.显示网页响应内容3.网络超时4.请求信息编码设置二、Request网络请求 Python官网界面三、设置请求头 四、Handler方法发送请求1.创建处理器对象2.创建自定义opener对象3.发送请求五、设置代理IP 六、身份验证 1.模拟浏览器自动登录获取Cookie2.保存Cookie3.加载Cookietaobao_cookie.txt文件任务二网页下载 ☛

任务引入小白写的论文需要统计各城市2021年的天气数据,查询网页数据作为基础数据。论文经过几次修改后,老师最后提出意见,小白的数据不够全面,需要给出各城市5年内的天气数据。小白已经找不到当时查询数据的网页。最后在利用Python爬取数据时下载的文件中找到了网页,才补全了论文需要的数据。那么,Urllib库中哪些函数可以实现网页保存?保存文件有哪些格式?文件保存位置在哪里?☛

知识准备网页是一个包含HTML标签的纯文本文件,它可以存放在世界某个角落的某一台计算机中,是万维网中的一“页”,是HTML格式,是标准通用标记语言的一个应用,文件扩展名为.html或.htm。网页下载是网络爬虫的目的。一、网页结构 网页一般由3个部分组成,分别是HTML、CSS(层叠样式表)和JScript(活动脚本语言)。1.HTML2.CSS3.JScript二、写入网页文件 微信公众平台三、网页文件下载 项目实战 实战一下载Python学习网址 学习应该从被动的学习转向主动、自觉的学习,主动将之付诸实践。小白在知乎上搜索Python的安装方法,网址如下:/p/111168324?from_voters_page=true,利用网络爬虫下载该文档,在课余时间进行自主学习。HTML文件实战二下载公司网页HTML文件石家庄××××文化传播有限公司的网址为http://www.sjz××××.com/,发送HTTP请求,保存网页信息。打开××××网页文件教学反映:课后分析:作业布置:参考资料[1].胡松涛著.《Python3网络爬虫实战》[M].北京:清华大学出版社,2020.7.[2].赵国生,王健著.《Python网络爬虫技术与实战》[M].北京:机械工业出版社,2021.1.[3].吕云翔,张扬著.《Python网络爬虫与数据采集》[M].北京:人民邮电出版社,2021.8.[4].吕云翔著.《Python网络爬虫:从入门到精通》[M].北京:人民邮电出版社,2023.7.[5].黄锐军著.《数据采集技术:Python网络爬虫项目化教程(第2版)用》[M].北京:高等教育出版社,2023.4.[6].柯晓昱,胡修远,林伟著.《人工智能应用基础<Python>项目式教程》[M].北京:电子工业出版社,2025.12.《Python网络爬虫技术项目教程》课程教案纸授课题目项目四安装Urllib3请求模块库并发送请求教学目的与要求教学目的:学会Urllib3的安装方法与加载方法;熟练掌握Urllib3发送请求函数的用法;掌握Urllib3模块库中的函数与Urllib中的函数用法的区别;重点掌握自动重试发送网页请求过程;学会重定向发送网页请求过程。教学要求:引导学生树立正确“三观”,塑造良好人格。教学重点与难点重点:(1)安装Urllib3请求模块库;(2)发送请求。难点:实战发送请求访问淘宝。教学方法课堂演示、课堂练习、问答形式的教授法教学用具机房难点与重点讲解方法示例法项目导读Urllib3是一个功能强大、条理清晰、用于HTTP客户端的Python库,许多Python的原生系统已经开始使用Urllib3。教学内容项目四安装Urllib3请求模块库并发送请求任务一安装Urllib3请求模块库☛

任务引入小白问老师:“我自己浏览网页,可以手动将数据保存下来,为什么要写个程序去爬取数据呢?”老师说:“很简单,网络爬虫不但能够模仿用户浏览网页,并将所想要的页面中的信息保存下来,还能够在短时间内访问成千上万的页面,并且在短时间内将海量数据保存下来,这速度可远远超越了人工手动浏览网页的速度。你没感觉到网络爬虫的好处,代表你学习的只是基本内容,还需要学习高级应用。”那么,Python中还有哪些高级功能模块?如何实现这些功能呢?☛

知识准备Urllib3模块库是一个用于HTTP客户端的Python第三方库,Urllib3模块库功能非常强大,使用却十分简单。安装Urllib3模块库有两种方法,即使用pip工具和Anaconda3工具。一、安装Anaconda 1.下载2.安装3.验证安装结果Anaconda官网下载二、安装Urllib3模块库下面分别介绍使用pip工具和Anaconda工具安装Urllib3模块库。1.使用pip工具安装Urllib3模块库2.使用Anaconda工具安装Urllib3模块库3.在PyCharm中安装Urllib3模块库4.用import导入模块库安装成功信息任务二发送请求 ☛

任务引入小白使用Urllib库中的函数爬取网站数据,结果发现并不是所有的网站都可以被访问,同时经常出现被封IP的情况。如何解决这些问题呢?☛

知识准备Urllib3模块库主要使用代理IP进行网络请求的访问,所以访问之前需要创建一个代理IP对象。同时,Urllib3模块库提供了很多Python标准库Urllib没有的重要特性:线程安全。代理IP。客户端SSL/TLS验证。文件分部编码上传。协助处理重复请求和HTTP重定位。支持压缩编码。支持HTTP和SOCKS代理。一、创建代理对象 126电子邮箱登录界面二、请求方法淘宝首页三、定义请求头四、设置代理IP五、自动重试六、重定向项目实战实战发送请求访问淘宝使用网络爬虫访问淘宝,发送请求后不可能无期限地等待响应,超过以timeout参数设定的时间之后停止等待响应。在Urllib3中,通过代理对象,可以发送多个请求,timeout参数可以在发送请求时设置,也可以在创建代理对象时设置,这样所有的请求遵循超时时间设置。(1)创建自定义函数,判断状态码。(2)创建代理IP对象。(3)将timeout参数定义在PoolManager中,设置的是全局超时时间。(4)根据请求方法与超时时间判断访问是否成功。教学反映:课后分析:作业布置:参考资料[1].胡松涛著.《Python3网络爬虫实战》[M].北京:清华大学出版社,2020.7.[2].赵国生,王健著.《Python网络爬虫技术与实战》[M].北京:机械工业出版社,2021.1.[3].吕云翔,张扬著.《Python网络爬虫与数据采集》[M].北京:人民邮电出版社,2021.8.[4].吕云翔著.《Python网络爬虫:从入门到精通》[M].北京:人民邮电出版社,2023.7.[5].黄锐军著.《数据采集技术:Python网络爬虫项目化教程(第2版)用》[M].北京:高等教育出版社,2023.4.[6].柯晓昱,胡修远,林伟著.《人工智能应用基础<Python>项目式教程》[M].北京:电子工业出版社,2025.12.《Python网络爬虫技术项目教程》课程教案纸授课题目项目五Requests请求模块库的应用教学目的与要求教学目的:学会Requests请求模块库的安装与加载;熟练掌握Requests发送请求函数的使用方法;学会网页响应数据的分析方法;重点掌握复杂网页请求过程;学会处理网页请求过程中的异常处理。教学要求:通过不同参数的设置,对比采集的数据,力求内容科学、方法科学,不硬讲,不空讲。教学重点与难点重点:(1)网页请求;(2)发送请求方法。难点:(1)复杂网络请求;(2)异常处理。教学方法课堂演示、课堂练习、问答形式的教授法教学用具机房难点与重点讲解方法示例法项目导读Requests模块库是基于Urllib模块库、采用Apache2Licensed开源协议的HTTP模块库,该模块库比Urllib模块库更加方便,可以减少大量的工作,完全满足HTTP测试需求。Requests模块库主要用于爬取小规模、数据量少,同时对爬取速度不敏感的网站。教学内容项目五Requests请求模块库的应用 任务一网页请求 ☛

任务引入虽然发送请求的模块库众多,但小白经过在学习群调查发现,有2/3的人使用Requests模块库。因此,Requests模块库肯定有其可取之处,但事实还是需要自己去验证的。那么,Requests模块库如何发送网页请求、如何获取响应数据呢?☛

知识准备Requests模块库的作用是模拟浏览器发送请求。浏览器发送请求的流程如图所示,Requests模块库发送请求的流程如图所示。一、标准的HTTP请求 豆瓣电影排行榜二、返回响应消息 未来40天天气预报网页1.字符串形式2.解码信息三、JSON格式数据 1.创建JSON文件2.Python编码为JSON3.JSON解码为Python运行结果任务二发送请求方法 ☛

任务引入通过查阅资料,小白了解了网页发送请求方法的种类和工作原理。那么,使用Requests如何定义发送网页请求的方法?不同的请求方法有什么区别?☛

知识准备常见的发送网页请求的方法分为以下两种:GET:最常见的方法,一般用于获取或查询资源信息,也是大多数网站使用的方法,响应速度快。POST:相比GET方法,POST方法多了以表单形式上传参数的功能,因此除查询信息外,POST方法还可以修改信息。一、发送GET请求方法1.发送params请求数据2.发送fields请求数据搜索图书网页二、发送POST请求方法1.发送data请求2.发送JSON请求3.发送body请求4.设置fields参数三、其他请求方法 任务三复杂网络请求 ☛

任务引入了解request()函数中的不同参数进行数据传递等复杂的网络请求功能,而且生成的代码更稳定、更易于后期维护。于是摩拳擦掌,开始着手定义参数。要编写面对不同情况的代码,需要了解可设置的参数的种类与含义。☛

知识准备简单请求是默认不发送Cookie和HTTP等认证信息的请求;复杂网络请求是发送请求时,在请求数据中添加参数,定义数据的类型、长度、编码等信息,实现服务器认证代理、请求内容、定制头等功能。一、复杂请求头二、上传文件 上传文件三、Cookies验证 四、会话保持任务四异常处理☛

任务引入小白在发送请求时,因为不同的原因,经常会遇到警告信息。有些是语法错误,可以很快进行修改;还有一些是运行失败异常,需要根据具体原因进行修改,但警告信息中不会清晰地显示错误原因。为了快速得到正确的程序,使用函数对这些异常进行分类。那么如何进行异常处理?Python包含哪些异常?☛

知识准备异常是一个事件,该事件会在程序执行过程中发生,影响程序的正常执行。—般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时,需要捕获处理它,否则程序会终止执行。捕捉异常一般使用try-except语句与异常处理模块(urllib.error模块、request.exceptions模块),保证程序不会终止。一、try-except语句 try-except结构在程序调试时很有用,下面对其进行简单介绍。1.try-except结构2.try-except-else结构3.嵌套循环二、Urllib异常处理模块1.URLError2.HTTPError三、Urllib3异常处理模块 四、request异常处理模块1.常见异常错误2.证书验证错误提示不安全的警告项目实战 实战爬取豆瓣最受欢迎的影评网址豆瓣最受欢迎的影评网页/md/searchm,如图所示,包含5页。以POST方式发送请求,通过设置prams参数定义新的url,实现翻页功能。教学反映:课后分析:作业布置:参考资料[1].胡松涛著.《Python3网络爬虫实战》[M].北京:清华大学出版社,2020.7.[2].赵国生,王健著.《Python网络爬虫技术与实战》[M].北京:机械工业出版社,2021.1.[3].吕云翔,张扬著.《Python网络爬虫与数据采集》[M].北京:人民邮电出版社,2021.8.[4].吕云翔著.《Python网络爬虫:从入门到精通》[M].北京:人民邮电出版社,2023.7.[5].黄锐军著.《数据采集技术:Python网络爬虫项目化教程(第2版)用》[M].北京:高等教育出版社,2023.4.[6].柯晓昱,胡修远,林伟著.《人工智能应用基础<Python>项目式教程》[M].北京:电子工业出版社,2025.12.《Python网络爬虫技术项目教程》课程教案纸授课题目项目六解析网页教学目的与要求教学目的:能够利用正则表达式编写简单的网页解析程序;能够利用XPath编写简单的网页解析程序;能够利用BeautifulSoup编写简单的网页解析程序。教学要求:培养学生敬业、勤业、精业、乐

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论