Python网络爬虫技术项目教程(新)_第1页
Python网络爬虫技术项目教程(新)_第2页
Python网络爬虫技术项目教程(新)_第3页
Python网络爬虫技术项目教程(新)_第4页
Python网络爬虫技术项目教程(新)_第5页
已阅读5页,还剩336页未读, 继续免费阅读

下载本文档

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

文档简介

项目一认识网络爬虫CONTENTS目录任务一

网络爬虫引言任务二

Web知识了解任务三

Python爬虫环境搭建明确技术伦理要求使用网络爬虫技术需划清数据获取道德边界,尊重用户隐私和网络安全,不滥用技术侵犯他人权益。培养思想价值观念通过学习网络爬虫技术,了解我国信息技术领域发展成就,激发学生爱国情怀与社会责任感。思政目标技能目标

课程学习基础目标了解网络爬虫起源与基本原理,掌握HTTP工作原理和网页请求过程。

实操技能培养目标掌握Python语言的开发环境搭建,学会使用Python开发网络爬虫。

课程工具价值认知明确网络爬虫是自动化信息收集工具,Python爬虫是高效收集分析互联网数据的工具。

发展趋势认知Python网络爬虫能力不断增强,随着技术发展其应用范围也在持续扩大。网络爬虫引言任务一任务一网络爬虫引言任务引入大一新生小明想做爬虫抓球鞋发售信息,发现知识不足,想了解爬虫相关知识与构建步骤。知识准备

网络爬虫定义网络爬虫也叫网页蜘蛛、自动索引器或蠕虫,是模拟人类上网行为的自动化脚本程序。

网络爬虫功能用来检索和收集网页上公开可访问的信息,包含文本、图片、视频、价格、用户评论等内容。

爬虫可爬取范围几乎所有互联网上可公开访问的数据,都可以成为网络爬虫抓取收集的目标对象。一、网络爬虫的起源

早期互联网发展状况早期互联网以FTP站点为主,用户手动导航寻找共享文件,后网页数量激增,成为开放数据源。

网络爬虫诞生背景为高效查找整合互联网分布式数据,创造出自动化的网络爬虫,用于抓取网页内容建立索引。

网络爬虫基础介绍网络爬虫又称网页蜘蛛、网络机器人,用于获取万维网信息,发展与互联网兴起紧密相关。

爬虫技术发展历程90年代用于搜索引擎构建网页索引,00年代结合算法实现广告收入最大化,10年代应对动态加载更新技术。

爬虫的作用与意义网络爬虫诞生于互联网发展,在数据自动采集处理贡献大,推动搜索引擎和智能信息处理发展。一、网络爬虫的起源

主流爬虫开发工具网络爬虫可依托多个平台开发,Python因语法简洁、特性易用、第三方库丰富成首选语言。

Python爬虫应用领域Python爬虫广泛应用于数据挖掘、新闻采集、自动化运维和人工智能训练数据收集等领域。

爬虫抓取效率优化抓取大规模数据时,使用异步编程并设置合理请求头,能提升效率,降低被封锁的概率。

爬虫技术发展展望网络爬虫随互联网技术进化,未来将更智能高效,同时需关注数据隐私与网络安全问题。二、网络爬虫的基本原理

网络爬虫基础定义网络爬虫又称网页蜘蛛或自动索引器,是浏览万维网的网络机器人,广泛应用于多个数据处理领域。

爬虫分类及差异按爬取范围分为通用爬虫和聚焦爬虫,前者扩展抓取范围直至停止,后者只保留主题相关链接抓取。

爬虫基本工作原理通过自动化方式模拟人类行为访问网页提取信息,可处理动态内容、反爬虫机制等复杂情况。

爬虫完整工作流程依次包括发起HTTP请求、获取目标服务器响应、解析提取所需数据、清洗整理后存储数据。

爬取循环执行机制解析网页时发现新URL会加入待爬队列,重复执行流程直到满足停止条件才结束运行。三、爬虫法律问题

爬虫使用基本要求使用Python网络爬虫需遵守相关法律法规和对应网站的使用条款,保持行为合法合规。

遵守法律相关规定非法获取大量公民个人信息可能触犯刑法需负刑责,爬取时不可侵犯隐私与商业秘密。

遵循网站条款约定多数网站明确禁止未经许可的数据爬取,爬取前需仔细阅读并遵守对应网站条款。三、爬虫法律问题

明确爬取范围目的爬虫应仅获取公开开放数据,且爬取行为本身必须具备合法正当的使用目的。

禁止侵入性操作合法爬虫不能存在侵入性操作,绕过网站安全和认证获取数据属于违法行为。

爬虫使用总结说明使用Python爬虫需谨慎,符合法律与道德要求可保障合法使用,助力互联网社区发展。爬虫开发概述Python网络爬虫开发需结合编程、网络和数据处理能力,整体是涉及多环节的完整开发过程。前期准备工作明确爬取目标分析网页结构,借助开发者工具定位数据位置,选好工具后安装导入对应库。核心代码编写配置请求参数模拟浏览器发请求获取网页内容,解析提取所需数据后存储,按需设置循环爬取。异常应对优化编写异常处理逻辑应对网络与网页结构变动,用代理延迟请求等技术避免封禁提升爬取效率。合规与运行维护需遵守robots协议和网站条款保证合法,开发阶段充分测试,部署后定期检查维护稳定运行。四、Python网络爬虫的步骤Web知识了解任务二任务二Web知识了解:任务引入

小明爬虫学习背景大一新生小明热爱编程,迷上Python爬虫,想抓取社团论坛内容,发现自身Web基础知识不足,需打好基础。

需要学习的Web问题HTTP运作方式,客户端请求报文构建与发送,服务器响应返回,HTTP消息组成,URL结构,HTML网页结构。任务二Web知识了解:知识准备HTTP协议基本定义

HTTP协议定义Web客户端从服务器请求Web页面,以及服务器传送页面给客户端的规则。HTTP请求模型结构

HTTP采用请求响应模型,客户端向服务器发请求报文,包含方法、URL、版本、头部及数据。HTTP响应结构内容

服务器以状态行作为响应返回,内容包含协议版本、状态码、服务器信息、头部及响应数据。一、HTTP的工作原理

HTTP基础概念HTTP是超文本传输协议缩写,是从万维网服务器向本地浏览器传输超文本的传输协议,是URL中最常用协议。

HTTPS基础概念HTTPS是基于安全套接层的超文本传输协议,是以安全为目标的HTTP通道,是HTTP的安全版本。

爬虫HTTP工作起始网络爬虫第一步是对起始URL发送HTTP请求,以此获取服务器返回的对应HTTP响应内容。网络爬虫的工作流程

HTTP的工作原理网页请求过程HTTP交互模式说明HTTP本质上是服务器与客户端之间进行数据交互的协议,由客户端发起请求,服务器做出对应响应。客户端连接与请求客户端即浏览器,默认连接Web服务器80端口建立TCP连接,通过套接字向服务器发送文本请求报文。服务器响应与连接处理服务器解析请求定位资源后,将资源返回客户端;会根据连接模式选择关闭连接或保持连接复用。客户端解析展示内容客户端先解析状态行和响应头,确认请求状态与文档信息,再读取并格式化HTML内容,在浏览器展示。一、HTTP的工作原理二、发送请求报文

请求报文整体结构发送请求即发送请求报文,请求报文包含请求行、请求头、空行和请求体四个组成部分。

请求行组成与说明请求行由请求方法、请求URL和HTTP版本三部分组成,各字段间使用空格分隔开。

HTTP请求方法分类不同HTTP版本定义不同方法,HTTP1.0有GET、POST、HEAD;1.1新增五种请求方法。

请求头作用与类型请求头存储请求说明,服务器从中获取客户端信息,常见有accept、Cookie、User-Agent等。

空行与请求体说明空行是请求头结束的标志,请求体内容由请求方法决定,GET为空POST为待提交数据。三、返回响应

HTTP响应结构HTTP响应由状态行、消息报头、空行和响应正文四个部分组成,由服务器处理请求后返回给客户端。

状态行构成状态行由HTTP版本号、状态码、状态消息三部分组成,告知客户端响应基本信息。

状态码分类说明状态码为三位数字,首数字定义类别,共分五类,分别对应不同处理结果。

常见状态码说明列举了多种常见状态码,包括200、400到404、500和503,并分别说明其含义。

其余组成部分说明消息报头提供附加信息,包含日期时间和内容类型等;消息报头后必须有空行,空行后的内容为响应正文。四、HTTP消息HTTP消息基本构成HTTP消息由客户端请求和服务器响应组成,两类消息均由开始行、消息报头、空行、消息正文构成。消息报头整体结构HTTP消息报头分为普通报头、请求报头、响应报头、实体报头四类,均按名称加冒号空格值的格式编写,名称不区分大小写。普通报头内容说明普通报头可用于请求和响应消息,主要包含缓存控制的Cache-Control、标记时间的Date、设置连接选项的Connection三类。常用请求报头介绍请求报头传递客户端附加信息与自身信息,常用报头包含Accept、Host、User-Agent等共七类,各自对应不同功能。常用响应报头介绍响应报头传递状态行之外的附加响应信息,常用的Location用于重定向,Server会标注处理请求的服务器软件信息。常用实体报头介绍请求和响应都可传送实体,实体报头定义实体相关元信息,常用的包含Content-Encoding、Content-Length等共六类。四、HTTP消息五、网页地址URL

01URI与URL定义URI即通用资源标识符,是Web资源的唯一定位标识,URL是URI子集,是网络资源字符串描述。

02URL与爬虫关系网址URL是网络爬虫获取数据的基本依据,网络爬虫爬取数据必须要有目标URL才能获取数据。

03Python中URL定义在Python语言里,URL一般直接使用字符串定义,定义方式有使用单引号和双引号两种形式。

网页与网址五、网页地址URLURL语法格式介绍URL由符合格式规范的字符串组成,拥有固定通用语法格式,包含多个可选和必选组成部分。URL各参数说明URL包含协议、主机名、端口、路径、参数、查询、锚等组成部分,各部分承担不同功能。URL组成结构总结URL可分为协议、主机地址、资源地址三部分,前两部分不可缺少,第三部分有时可以省略。六、网页结构

网页基本组成网页是含HTML标签的纯文本文件,一般由HTML结构、CSS样式和JScript功能三个部分组成。HTML结构说明HTML是网页的整体结构,对应网站框架,带<>符号的是成对出现的HTML标签。常见HTML标签包含网页根标签、内容body标签、框架div、段落p等,还包括图片、标题、超链接标签。CSS与JScript作用CSS负责定义网页的外观样式,JScript用于实现网页交互与各类特效,描述网页功能。

Python爬虫环境搭建任务三学习后产生开发想法小明深入学习Web知识后对开发爬虫产生兴趣,受社团同学启发,决定搭建自己的Python爬虫环境。搭建环境产生疑问面对Python版本、IDE选择和模块安装,小明产生疑惑,依次提出了四个相关问题。任务三Python爬虫环境搭建:任务引入任务三Python爬虫环境搭建:知识准备

Python语言特性Python是一种高层次的脚本语言,同时结合了解释性、编译性、互动性和面向对象的特性。

基础工具安装搭建爬虫环境需先从官网下载安装Python解释器和PyCharm编辑器,完成基础工具配置。

依赖库安装导入根据爬虫具体需求,使用pip安装requests、beautifulsoup4等所需爬虫库,最后完成导入。一、Python简介

Python语言特点简单易学功能强大,有高效高级数据结构,支持面向对象编程,适用多种场景,适合初学者。

Python语言属性属于解释型与交互式语言,无需编译环节,可直接在Python提示符后执行代码。

Python开发背景1989年荷兰人Guido克服ABC语言缺点,结合多种语言优势,开发出Python语言。一、Python简介

Python早期发展九十年代诞生后广泛应用于系统管理和Web开发,逐步成为热门编程语言。

Python团队迁移1995年Guido发布多个版本,2000年开发团队两次迁移,2001年成立Python软件基金会。

Python版本迭代先后发布Python2和不兼容旧版的Python3,近年持续更新至3.13最新稳定版本。二、安装Python

安装前准备说明Python运行需要安装Python解释器,教程基于Windows系统介绍Python3.13.2下载安装流程。

Python下载流程进入Python官方下载页面,针对Windows系统点击对应按钮,下载64位完整离线安装包。

初始安装界面设置双击安装文件打开安装对话框,需勾选AddPython.exetoPATH加入环境变量,选择自定义安装。

自定义安装步骤可选功能保持默认勾选,进入高级选项后修改非C盘的有权安装路径,点击安装等待完成。

安装后的检查操作安装完成后在Python安装目录打开命令提示符,输入Python指令,能正常运行即代表安装成功。官网下载界面安装界面安装错误信息选项设置对话框

高级设置安装进度对话框

“Setupwassuccessful(安装成功)”界面“命令提示符”对话框安装检查PyCharm基本介绍PyCharm是JetBrains公司打造的Python集成开发环境,面向Python开发提供支持。通用功能说明具备调试、语法高亮、项目管理等通用IDE功能,支持代码跳转、智能提示、自动完成、单元测试与版本控制。框架扩展支持除基础Python开发外,还为Django开发提供良好支持,同时可支持GoogleAppEngine与IronPython。三、安装PyCharm三、安装PyCharm1.下载PyCharm

任务内容说明Python爬虫环境搭建任务中,包含Pycharm开发工具的下载安装环节。官网下载入口登陆Pycharm官方网站指定下载页面,选择对应Windows系统的下载板块获取安装包。版本选择说明官网提供收费专业版和免费社区版两种版本,一般推荐选择免费的社区版下载。下载操作步骤在社区版板块下方单击Download按钮,即可下载Pycharm2024.3版本安装包。三、安装PyCharm2.安装PyCharm

启动安装程序双击pycharm-community-2024.3.exe弹出安装界面,点击下一步进入安装路径选择对话框。选择安装路径在路径选择对话框中,可点击浏览按钮,自定义设置PyCharm的安装存储路径。设置安装选项勾选创建桌面快捷方式、添加bin目录到环境变量、添加右键菜单、关联.py文件。完成安装操作点击下一步选择默认选项,点击安装等待进度完成,最后点击完成即可结束安装。

安装界面安装路径对话框

安装选项设置对话框选择安装菜单文件

安装过程“Finish”对话框三、安装PyCharm3.配置PyCharm初始启动步骤双击桌面对应版本PyCharm图标启动软件,进入语言和地区对话框后保持默认中文,点击下一步。协议与数据设置勾选并同意用户协议后点击继续,在弹出的数据共享对话框中点击不发送,即可激活主界面。界面选项卡介绍激活后的用户界面共包含四个选项卡,分别是项目选项卡、自定义选项卡、插件选项卡和学习选项卡。编辑器主题设置进入自定义选项卡可设置主题,该软件共提供五个不同明暗风格的主题供使用者按需选择。其他参数调整可在无障碍功能组调整IDE界面字体大小,软件已自动安装简体中文包,界面默认为中文版。启动界面“语言和地区”对话框

“PyCharm用户协议”对话框编辑界面“自定义”选项卡

LightwithLightHeader

主题中文版用户界面案例1——PyCharm项目文件创建项目文件在PyCharm开发工具中完成单个项目文件的创建,为后续项目开发搭建基础工程框架。创建虚拟环境在已创建项目的根文件夹下,创建独立的虚拟环境,隔离不同项目的依赖配置。代码存放位置本书相关所有的Python爬虫案例源文件代码,都放置在这个创建好的项目目录下。“新建项目”对话框项目文件编辑环境案例1——PyCharm项目文件【操作步骤】

启动PyCharm软件双击桌面上PyCharmCommunityEdition2024.3.3图标,启动软件后自动打开欢迎窗口。

新建根项目文件点击欢迎窗口项目栏的新建项目,输入项目名称和存放路径,设置好解释器参数后完成创建。

新建一级子目录在左侧项目面板选中根项目,依次点击文件菜单中新建-目录,输入名称ch_01,回车创建该目录。

新建指定Python文件选中ch_01目录,依次点击文件菜单中新建-Python文件,输入名称example_01,回车创建对应文件。

编写并运行程序在新建的Python文件中完成代码编写,选择当前文件运行即可在运行面板查看输出结果。

创建项目文件夹“新建目录”对话框新建目录文件Python文件”对话框新建Python文件运行结果四、网络爬虫模块库

常用爬虫模块库编写Python网络爬虫时,常用的库有requests、BeautifulSoup、Scrapy和Selenium等。

爬虫环境准备根据爬虫项目需求,选择适配的爬虫模块库,并提前完成对应模块库的安装配置。四、网络爬虫模块库1.常用模块库分类

01HTTP请求类库介绍用于发送请求获取网页内容,包括标准库urllib、第三方库urllib3和易用强大的requests库。

02HTML解析类库介绍用于解析网页结构提取数据,包括可配合requests使用的BeautifulSoup,支持解析操作的lxml。

03高级爬虫框架工具用于开发高级网络爬虫,包括异步处理的Scrapy、处理动态渲染的Selenium和分布式PySpider。

04模块库选择建议根据具体爬虫需求选择,简单任务可选requests加BeautifulSoup,复杂大规模任务选高级框架。四、网络爬虫模块库2.使用pip工具安装爬虫相关库

安装方法介绍安装Python爬虫模块库有pip工具和Anaconda3工具两种方法,本书介绍pip工具安装方式。

pip工具说明pip是现代通用Python包管理工具,支持包的查找、下载、安装、卸载,安装Python时已预装。

Urllib3安装步骤在cmd命令行窗口中输入pip3installurllib3命令,回车后显示安装过程,成功提示即为完成安装。

pip版本升级若pip版本过旧会导致安装失败,需输入python-mpipinstall--upgradepip命令进行升级。

Urllib3模块库的安装过程

安装更新成功信息四、网络爬虫模块库3.在PyCharm中安装Urllib3模块库

pip工具安装urllib3使用pip或pip3工具下载安装urllib3模块库后,可在ShellIDLE中使用,但PyCharm需另行安装。

打开PyCharm设置路径打开PyCharm,依次打开文件→设置→项目→Python解释器窗口,可看到当前已有pip软件包。

pip版本更新提示当前pip为23.2.1版本,最新版本是24.0,可按照相同操作路径将其更新至最新版本。

PyCharm安装urllib3单击安装按钮,搜索并选择urllib3后点击安装,提示安装成功即完成模块库安装操作。“Python解释器”窗口安装成功信息安装urllib3模块库列表四、网络爬虫模块库4.用import导入模块库

模块导入基础方式Python安装完成的模块可被引用,一般通过import语句和from…import语句实现模块导入操作。

import语句用法import语句可直接导入模块,搭配as关键字能给导入的模块重命名,简化代码便于程序维护。

基础导入语法说明from…import语句可仅导入模块中需要的部分变量,避免全部导入带来的可读性变差问题。

子模块导入方法如果需要导入指定模块下的某个子模块,可以使用from父模块.子模块导入目标子模块的格式。案例2——安装爬虫模块库

案例任务介绍这是Python爬虫环境搭建的第二个案例,任务是演示在PyCharm中安装爬虫常用模块库。需安装模块介绍本次需要安装的都是爬虫常用模块库,主要包括requests、BeautifulSoup和Scrapy这三个模块。

requests安装成功信息案例2——安装爬虫模块库【操作步骤】

打开目标项目双击桌面PyCharm图标启动该软件,按照路径打开名为“Reptiles_pythonProject”的目标项目。

安装requests模块库requests是简化HTTP请求的popular库,在PyCharm解释器设置中搜索requests后按步骤安装,提示成功即完成。

安装BeautifulSoup库BeautifulSoup是解析HTML、XML的Python库,官网推荐使用BeautifulSoup4,在解释器设置中搜索该库完成安装。

安装Scrapy模块库Scrapy是强大的开源Python爬虫框架,完成安装后关闭对话框,返回查看模块列表,确认后保存设置,后续可按此流程安装其他模块。

BeautifulSoup4安装成功信息Scrapy安装成功信息安装常用爬虫模块库列表THEEND谢谢项目二

Python入门知识CONTENTS目录任务一

Python基本语法与命令任务二

数据类型任务三

函数和程序结构思政目标

培养思维能力通过编程实践,培养学生计算思维和逻辑处理问题能力,对培养高素质复合型人才有重要意义。

鼓励创新发展鼓励学生在学习网络爬虫基础上开展技术创新探索,助力学生成长并推动社会发展。整体学习目标掌握Python基础语法、基本数据类型,能灵活运用Python的函数与程序结构。爬虫入门建议Python爬虫入门要保持兴趣并持之以恒,先从基础语法逻辑开始学习。入门知识范围重点学习列表、字典、字符串等数据类型,掌握if语句、for循环等程序结构。入门练习要求不需要一开始就学复杂Python知识,要反复练习相关内容直到熟练掌握。技能目标Python基本语法与命令任务一任务一Python基本语法与命令任务引入小明搭好Python爬虫环境后,发现自己不熟Python基础语法,意识到需打好基础后,生出多个相关疑问。任务一Python基本语法与命令:知识准备

编程语言特点计算机编程语言与日常自然语言不同,自然语言存在多义性,编程语言输出的程序不能有歧义。

语法规则必要性计算机要依照编程语言完成指定任务,需确保程序无歧义,因此每种编程语言都有专属语法。一、程序头文件

Python程序头概述是Python脚本开头部分,用于指定编码、声明依赖、设置全局配置,需遵循规范保障程序运行。

解释器声明规范编写新脚本时,通过声明查找环境变量中的Python3解释器,不硬编码路径提升可移植性。

编码方式声明Python源码默认使用ASCII编码,若含非ASCII字符,需通过指定UTF-8保障解释器正确读取。

模块依赖声明可使用import关键字声明脚本依赖的模块,声明后脚本就能调用对应模块提供的各项功能。

全局配置设置可在头文件设置日志级别、全局变量等全局配置,影响脚本整体的执行方式和运行参数。编程语言作用介绍编程语言是计算机和人类交流的桥梁,通过一系列语法规则定义程序的结构和行为。代码行宽规范要求每行代码尽量不超过80个字符,方便在控制台查看内容,以此提升代码的可读性。空行使用规范要求空行用于分隔不同功能代码,不同层级函数、类之间按规则使用对应数量空行分隔。空格符号使用要求在二元运算符、特定标点后按要求添加空格,在特定位置不添加多余空格保证格式规范。二、语法规则三、数据输入输出input函数功能格式input函数用于提示用户从键盘输入数据等内容,调用格式为input([prompt]),返回字符串类型值。print函数功能与参数print函数用于打印输出,可一次输出多个对象,支持自定义间隔符、结尾符及输出对象等参数设置。输入输出格式设定Python中可通过内置的input和print函数完成输入输出,变量输入输出可自定义格式化格式。四、运算符

运算符与表达式概念运算符是编程语言必备符号,可对数值、字符、逻辑值运算,表达式则是由各类元素按规则组成的计算式。Python运算符分类Python中常见运算符共八类,分别是赋值、算术、逻辑、比较、位、成员、身份运算符以及运算符优先级。基础运算符介绍赋值用于给变量赋值,算术运算符支持常规加减乘除,逻辑和比较运算符运算结果均为布尔型。位运算符特点与规则位运算是对数值二进制形式运算,运算速度更快,左移和右移分别对应乘除2操作,运算规则清晰。特殊运算符与优先级Python有专属的成员和身份运算符,分别用来检测成员和比较对象存储单元,运算符有明确优先级规则。任务一Python基本语法与命令

案例1——学生人数统计这是Python教学案例,统计男女人数、总人数与比例,需创建指定项目文件,编写程序后运行查看结果。数据类型任务二任务二数据类型

任务引入掌握Python基础后,小明发现自身对Python数据类型理解不足,我们需要了解其常用类型并掌握运用。任务知识准备本次知识准备任务为讲解Python中内置包含的几类常用基础标准数据类型。不可变数据类型Python中不可变的标准数据类型包含数字、字符串、元组和区间。可变数据类型Python中可变的标准数据类型包含列表、集合、字典这三类常用类型。任务二数据类型:知识准备一、数字

数字类型概念特性数字类型是数学中常见数据类型,也是Python程序运行基础,其值改变会重新分配内存空间。Python变量赋值规则Python变量使用前必须赋值,赋值后才创建变量,等号左侧为变量名,右侧为存储值。变量赋值特殊用法Python可同时给多个变量赋相同值,也可给多个变量分别赋值对应不同对象值。Python数字类型分类Python一共支持四种数字类型,分别为整型、浮点型、布尔型和复数这四种。对象类型查询方法Python中数值赋值和计算都很直观,可用type()函数查询变量所指的对象类型。二、字符串字符串基本说明字符串是Python中最常用的数据类型,可通过不同引号来创建,不同引号有各自使用规则。字符串创建规则单双引号作用一致,引号内包含引号时需换用不同引号,三引号可表示多行,也能自由使用单双引号。字符串值访问方法使用方括号截取字符串获取子串,语法为变量[头下标:尾下标],索引从0开始从左计数,从-1开始从右计数。字符串基础操作Python中加号作为字符串连接符,可以拼接多个字符串;星号表示复制当前字符串,生成重复副本。转义字符用法Python中用反斜杠对特殊字符转义,若不希望反斜杠转义,可以在字符串前添加r表示原始字符串。字符串索引值三、列表

Python列表基本概述列表是Python中使用最频繁的数据类型,是任意对象的有序集合,可用中括号创建元素。

Python列表创建规则列表创建时元素间用逗号隔开,元素无需同类型,可添加任意类型甚至嵌套列表元素。

Python列表索引规则列表从左到右默认从0开始索引,从右到左默认从-1开始,下标为空表示取到头或尾。

Python列表切片操作列表可使用[头下标:尾下标]格式截取对应子列表,头下标为空从头开始,尾下标为空到尾结束。

Python操作使用提示Python有自动补全功能,操作中选中目标方法或函数后,按Tab键就可以快速完成键入。

Python自动补全功能四、区间

01range基础概念range是类似整数列表的可迭代对象,本身属于一种对象类型,同时也是一种数据结构。

02range函数调用格式range函数可传入三个参数,标准调用格式为range(start,stop[,step])。

03start参数说明计数从start参数指定的值开始,该参数默认值为0,range(5)等价于range(0,5)。

04stop与step说明计数到stop值结束但不包含stop,step为步长默认值是1,range(0,5)等价于range(0,5,1)。元组基本介绍元组与列表类似,核心差异在于元组的元素创建后不能修改,创建方式分为两种不同方法。括号直接创建法使用小括号包裹元素并用逗号分隔,单个元素需在元素后加逗号,否则会被识别为普通值。tuple函数创建Python内置tuple函数可将其他数据类型转为元组,支持字符串、元组、range对象等数据。元组通用操作元组元素不能修改,可使用+操作符拼接,也支持按索引访问和切片操作,方法与列表一致。五、元组六、字典

Python字典基本介绍Python中字典是除列表外最灵活的内置数据结构,是可变容器模型,可存储任意类型对象。

字典直接创建方法字典是无序键值对集合,通常用{}创建,元素通过键而非偏移存取,每个元素为键关联值的键值对。

字典函数创建法在Python中,不仅可以直接定义字典,还可以使用fromkeys()函数、dict函数创建字典。

字典与列表区别列表是有序对象集合,通过偏移存取元素;字典是无序对象集合,通过键存取对应元素。七、集合

集合基础定义集合是无序不重复元素的序列,Python中可通过大括号或set()函数创建集合。

直接创建语法直接创建用大括号包裹元素,元素间以逗号分隔,因集合无序输出排序不固定,元素不重复。

set函数创建set函数可将可迭代对象转为集合,调用时传入迭代参数,创建空集必须使用set()函数。八、bytes类型

bytes类型基本定义Python3中bytes是不可变二进制序列,元素是0到255的整数,与存储Unicode字符的字符串不同。

bytes类型适用场景bytes类型常用于处理图像、音频、视频等二进制数据,网络编程中也常用它传输数据。

bytes对象创建方式创建bytes对象最常见方式是给字符加b前缀,也可使用bytes()函数转换得到。

bytes函数调用说明bytes()函数第一个参数是待转换对象,第二个是编码方式,省略时默认使用UTF-8编码。动物园案例本案例用多种Python数据类型描述动物园基本情况,需在指定项目新建文件,输入程序后运行。案例2——动物园的基本情况函数和程序结构任务三任务三函数和程序结构

任务引入熟悉Python基础数据类型后,本文将讲解Python函数定义调用,以及常用程序结构,帮助构建程序解决问题。任务三函数和程序结构:知识准备函数基本概念函数是可重复使用的代码块,能够接收输入参数,经过内部逻辑处理后返回运算结果。程序结构定义程序结构是组织管理代码的方式,常见类型包含顺序结构、选择结构和循环结构等。知识点重要性Python函数与程序结构是编程基础,能拆分代码为可重用单元,让程序更模块化易维护。一、函数

函数作用介绍函数能让程序模块化,便于阅读修改完善,Python支持内置函数与自定义函数,自定义函数可提升代码复用性。

函数定义规则函数代码块以def开头,后接函数名和圆括号,参数放圆括号内,内容以冒号起始并采用缩进格式。

函数组成要素第一行可选择性添加文档字符串存放说明,用return带表达式结束函数并返回值,不带return则返回None。

实战案例步骤通过def定义函数计算商品增长后价格,在PyCharm的指定项目中新建Python文件编辑代码运行即可得到结果。二、程序结构

Python程序结构分类通用程序设计语言的程序结构分顺序、选择与循环三种,Python也包含这三种基础结构。

顺序结构说明顺序结构是最简单的程序结构,由多个Python语句按顺序构成,程序执行时从上到下依次进行。

选择结构说明选择结构分为单分支、二分支、多分支,最常用的是if-else结构,可根据条件选择执行不同代码块。二、程序结构

for循环结构说明for循环循环次数一般已知,通过遍历可迭代对象执行循环体,可配合range函数处理数字序列循环。

while循环结构说明while循环多用于未知循环次数的场景,通过判断循环控制表达式的值,决定是否继续执行循环体。

微信下载网址案例本案例使用Python循环结构输出不同版本微信的下载网址,包含项目创建、编码运行的完整流程。项目实战实战1学生信息统计本Python实战定义两个函数,输入两学生信息,比较年龄大小,判断性别是否相同。实战1学生信息统计比较Python网址本实战输入多个网址,用Python循环检查是否相同,转换字符串,输出异同,需按步骤创建并运行程序。实战2比较Python网址THEEND谢谢项目三

发送网页请求CONTENTS目录任务一

Urllib发送网页请求任务二

Urllib3发送网页请求任务三

Requests发送网页请求思政目标

创新精神培养激发学生创新精神,鼓励探索Python发送网页请求的新方法和应用,助力社会发展

协作能力培养通过团队项目和协作任务,让学生完成网页请求任务时学会团队合作与沟通基础使用要求掌握Urllib、Urllib3和requests发送网络请求函数,熟练掌握各个参数的使用方法。核心技能重点重点掌握通过代理和身份验证这两种方式发送网页请求的实现过程。数据操作目标学会网页数据的常规下载方法,并且能够做到熟练操作与使用。技能目标项目导读

爬虫请求概念Python爬虫中发送网络请求指用特定库向目标网站或服务器发起HTTP请求,是获取数据的关键步骤。

请求作用说明发送网络请求可让爬虫模拟浏览器行为,从目标网站获取需要的各类网页信息与内容。

常用请求库介绍Python里可用来发送网络请求的常用库,主要包括urllib、urllib3以及requests这几个。Urllib发送网页请求任务一任务一Urllib发送网页请求

任务引入大二学生小明备战爬虫比赛,深入研究Python的Urllib库,掌握各类请求技巧,为后续抓取数据打基础。任务一Urllib发送网页请求:知识准备

Urllib基础介绍Urllib是Python的标准库之一,若要使用它发送网页请求,首先需要导入对应模块。

request模块功能urllib.request作为HTTP请求模块,可用来模拟浏览器向目标网页发送请求。

请求使用方法使用该模块发送请求时,只需要传入目标URL及额外参数,就能完成网页访问的模拟。基本函数介绍urlopen()是特殊opener,实现HTTP请求获取响应,不支持代理、Cookie等HTTP/HTTPS高级功能。函数参数说明包含url、data、timeout、cafile、capath、context等参数,各参数承担不同功能,适配不同场景。获取响应内容该函数返回HTTPResponse对象,需调用对应属性函数提取网页内容,可结合实际案例演示操作。一、基本HTTP请求案例1——获取商商查网站数据。抓取案例说明抓取商商查网站数据,需先在指定项目创建Python文件,编写程序后选择当前文件运行。网络超时知识超时指超出设置时间未获响应,函数用timeout参数指定时间,支持HTTP、HTTPS、FTP请求。商商查网址界面案例2——设置请求超时时间。超时设置案例设置请求超时抓取58同城首页,流程同前,需在指定项目创建对应Python文件编写运行。

58同城首页二、Request网络请求

HTTP消息头分类HTTP消息头又称headers,分为基本信息、响应头、请求头、请求参数四类,基本信息包含请求网址等五部分内容。

Request函数介绍Request函数可构造HTTP请求、模拟浏览器发起请求,可设置请求头,处理授权验证、重定向、Cookies等功能。

Request参数说明Request函数支持七个参数,分别对应网址、请求数据、请求头、源主机、可验证性、请求方法的配置。

常见HTTP请求方法常见HTTP请求方法共九种,包括GET、POST等,不同方法功能不同,GET获取资源POST提交数据。知识准备:二、Request网络请求请求头设置方式设置请求头共有两种方法,可构造请求时传入字典参数,或调用add_header方法逐个添加。典型请求头说明请求头由关键字值对组成,典型有User-Agent、Accept、Host三个,User-Agent标识客户端浏览器类型。请求获取官网案例发送Request请求获取Python官网数据,需启动PyCharm打开指定项目,新建Python文件编写程序运行。设置请求头案例设置请求头获取哔哩哔哩网页数据,需启动PyCharm打开指定项目,新建Python文件编写程序运行。Python官网界面哔哩哔哩界面添加头信息获取网页案例的运行结果三、Handler方法发送请求

Handler方法功能介绍Handler方法可处理复杂页面,发送请求先创建处理器,类似CPU负责解释指令处理数据,步骤如图所示。

基础Handler类说明BaseHandler是所有Handler父类,HTTPSHandler默认无特殊功能,debuglevel设为1会添加日志。

常用Handler类说明HTTPDefaultErrorHandler处理响应错误,抛出异常,还有重定向、Cookie处理、代理、认证等专用Handler。三、Handler方法发送请求

Handler操作步骤说明先创建对应功能的Handler处理器对象,再用build_opener方法创建自定义opener,最后用open方法发请求。

案例项目准备工作案例用Handler法获取大众点评网站数据,需启动PyCharm,打开指定项目新建Python文件。

案例运行操作步骤新建文件后在编辑窗口输入程序,选择运行当前文件,点击运行即可得到对应运行结果。大众点评网站网址

Handler方法获取网页案例的运行结果四、设置代理IP

代理IP设置作用在Python网络请求中设置代理IP可隐藏真实地址,避免被目标网站识别封禁,使用前要先设置代理服务器。

urllib代理设置方法通过urllib.request.ProxyHandler传入格式正确的IP字典,再用build_opener创建自定义opener发送请求。

系统代理获取方式当用户传入proxies参数时,可以通过Python标准库提供的requests类中的getproxies()函数来获取系统代理服务器的配置信息。

代理设置案例准备在指定端口创建对应代理服务,打开已有PyCharm项目,新建Python文件准备编写相关的代理设置程序。

代理运行结果说明运行程序后origin字段显示代理IP则设置成功,免费代理IP存活时间短,失效后需自行更换新的有效IP。Cookie基础概念Cookie是网站存储在用户本地终端的数据,用于辨别用户身份、跟踪会话,维持用户登录状态。爬虫Cookie获取方式开源网络爬虫支持指定Cookie模拟登录,可手动获取,也可模拟登录自动获取。Python获取CookiePython中用http.CookieJar()获取Cookie,HTTPCookieProcessor()处理并发送带Cookie的请求。获取Cookie案例案例七为获取MAN网页Cookie信息,需在PyCharm项目中新建文件编写程序运行。五、身份验证

MSN网站界面五、身份验证

Cookie保存方法Cookie是客户机中的文本文件,可通过cookiejar.save()函数保存到本地,并可指定参数。保存Cookie案例案例八为保存MSN网站Cookie文件,同样需在PyCharm项目中新建文件编写程序运行。Cookie加载方法Cookie以文件形式保存在用户机器中,可通过cookiejar的load()函数从文件获取。加载Cookie案例案例九为加载卡路里查询Cookie信息,运行后可在当前路径查看保存的Cookie文件。保存MSN网站Cookie文件案例的运行结果卡路里查询网页

calories_cookie.txt文件Urllib3发送网页请求任务二任务二Urllib3发送网页请求

任务引入Urllib3是Urllib增强版,效率稳定性更好。本文将解答Urllib3发请求、设置属性及应对反爬的相关问题。任务二Urllib3发送网页请求:知识准备

工具基础介绍urllib3是功能强大的HTTP客户端库,提供多种发送HTTP请求的方法,发送网页请求前需先导入库。

模块使用准备urllib3主要通过代理IP访问网络请求,创建连接前需要先创建一个代理IP对象。

模块核心特性相比Python标准库urllib,它具备线程安全、代理IP支持、SSL/TLS验证、压缩编码等诸多新特性。一、创建代理对象连接池创建原因Urllib3使用代理访问网络请求,访问前需创建连接池对象,适合多请求访问同一主机时非常有用。连接池创建方式在Urllib3中使用PoolManager()函数创建连接池管理器,该函数有三个主要参数分别设置相关配置。参数具体说明num_pools指定缓存池个数控制缓存数量,headers指定请求头信息,其他参数由连接池生成。二、request方法发送请求

request方法功能通过ProxyManager对象的request方法发送网络请求,可指定方法、URL、参数和请求头,返回HTTPResponse对象。

请求方式参数说明method指定请求方式,POST提交数据,GET请求资源,PUT上传内容,HEAD获取响应头元信息。

其余参数说明url是待抓取地址,fields以字典添加参数,headers添加请求头信息,urlopen_kw接收其他关键字参数。三、获取响应属性

响应对象介绍发送请求后返回HTTPResponse对象response,可获取服务器响应数据,具备多个不同属性。

响应对象属性包含状态码、请求链接、字符编码、Cookie信息、头信息等常用属性,及不同格式响应内容获取方法。

案例10操作步骤获取哔哩哔哩登录界面代理IP,发PUT请求取头信息,在PyCharm对应项目中新建Python文件编写程序。哔哩哔哩登录界面三、获取响应属性

案例10结果说明程序不同运行时间,响应头中的Date、Last-Modified、Expires等时间相关值会发生变化。

案例11操作过程对某公司首页,用代理IP发送不同方法请求,获取状态码判断请求是否成功,按步骤新建文件运行程序。

案例11结果分析运行结果表明该公司服务器支持GET和HEAD方法,禁止POST和PUT方法,对数据交互有一定限制。某公司首页四、定义请求头

请求头添加方法请求头用于添加请求附加信息,有两种添加方法:初始化PoolManager()时定义,或在request()传入字典参数。案例操作步骤案例为获取带请求头的响应,需在PyCharm项目中新建文件编写代码,选择文件后点击运行获取结果。Connection参数设置Connection参数可设置连接状态,HTTP1.1默认持续连接,Connection设为Keep-Alive可开启持久连接。cookies参数设置Urllib3没有直接设置cookies的专门方法和参数,可以在headers中添加Cookie字段来完成设置。五、设置代理IP

01代理管理器说明ProxyManager()函数用于创建一个代理管理器,需要设置代理IP,才能发送网络请求,并有固定调用格式。

02函数参数介绍其主要参数包括代理IP、代理池个数、指定请求头、代理请求头信息以及连接字段。

03请求头连接知识当请求头设置为Keep-Alive时,TCP连接请求完成后会保持打开,供后续请求复用,无需重新建立。

04案例开发步骤在PyCharm中打开ch_03项目,新建example_13.py文件,输入代码后选择当前文件运行程序。六、自动重试

自动重试概念与方法受服务器和网络影响网络请求常需多次尝试,此即自动重试,Urllib3库支持该机制,常用两种实现方法。

retries参数使用说明request方法中retries参数可指定重试次数,默认值为3,可通过response属性获取总重试次数。

重试条件参数设置重试分连接错误、读取错误、其他错误和重定向四类情况,各对应参数,默认None,设为False则直接抛异常。

Retry类功能介绍urllib3.util.Retry类可指定重试次数、条件与等待间隔,请求失败后按规则重试,直到成功或达最大次数。

重试请求实现案例对百度网址实现重试机制有两种方法,一是默认参数,二是Retry函数定义参数,并给出了代码编写运行步骤。七、重定向

基础概念介绍重定向是将网络请求转到其他位置,对应响应码301与302,urllib3可灵活处理HTTP重定向。

重定向处理配置request()函数的redirect参数可开关重定向,urllib3支持自动、自定义与禁用三种处理方式。

自定义策略案例通过创建Retry对象设置redirect_cates实现自定义,启动PyCharm打开项目创建文件运行后请求成功。

禁用重定向案例使用PoolManager发起请求时设置redirect=False禁用自动重定向,创建对应文件运行后请求成功。Requests发送网页请求任务三任务三Requests发送网页请求

任务引入比赛临近,小明打算学习Requests库,需了解其发请求、调参数、传文件和保持会话的方法。任务三Requests发送网页请求:知识准备Requests模块作用模拟浏览器发送请求,主要用于爬取小规模、数据量少且对爬取速度不敏感的网站。请求发送流程说明浏览器发送请求流程对应图3-16,Requests模块库发送请求流程对应图3-17展示。请求类型划分与功能简单请求默认不发送Cookie和HTTP认证信息,复杂请求可添加参数实现多种定制功能。

浏览器发送请求的流程

Requests模块库发送请求的流程一、发送标准的HTTP请求

Requests模块核心函数Requests模块用于在Python中发送标准HTTP请求,核心是request()函数,支持多种方法发起请求。

请求方法说明GET方法主要用于获取查询资源,响应速度快;POST支持表单传参,除查询外还可修改资源信息。

request函数参数request函数调用格式为requests.request(method,url,**kwargs),其中method是方法,url是网址,**kwargs为可选扩展参数。

操作案例步骤通过request函数访问快手短视频网,需在PyCharm项目中新建文件编写代码,选择当前文件运行获取结果。

请求结果判断网络请求是爬虫第一步,可通过状态码判断请求是否成功,通常200表示连接成功,404表示请求失败。快手短视频网址二、返回响应消息

响应对象概述使用Requests的request函数发送请求后,返回包含服务器资源的Response对象,内含所有返回资源。

响应信息查看方法可通过对象属性查看请求地址、响应头、请求头、请求方法、重定向历史和服务器cookies。

案例操作要求本案例为GET访问滴答漫画网页获取响应,需在PyCharm的指定项目中新建Python文件运行。

案例操作步骤启动PyCharm打开ch_03项目,新建example_18.py文件,输入程序后选择当前文件运行查看结果。滴答漫画网页三、发送GET请求方法

GET方法特点说明GET方法可传输公开参数信息,解析方便,提交数据会直接填充显示在请求URL中。

get()调用格式说明request.get()通过Requests发送GET请求,包含url、params、**kwargs三个参数。

GET请求URL参数规则URL中问号划分域名和GET参数,参数名和值用等号连接,多参数间用&分割,中文会转为加密十六进制码。三、发送GET请求方法

params参数使用说明params用于追加url后的查询参数,支持字典或字节序列,字典自动转url编码无需手动转码。

网易云歌曲搜索案例案例展示网易云站内搜索歌曲,需启动PyCharm,打开指定项目,新建Python文件后运行程序。

fields参数使用说明GET等请求可在request()传入字典类型fields参数,该数据用于设置url的查询参数。

百度带参请求案例案例介绍用GET方法访问百度,通过fields添加url参数,新建Python文件运行后请求成功。搜索歌曲网页四、其他请求方法

HTTP请求方法分类HTTP请求方法代表客户端对服务器的操作,GET、HEAD获取信息,PUT、POST等提交信息。Requests模块请求设置requests.request的method参数指定请求方式,效果和requests.get等对应方法完全相同。四、其他请求方法

POST请求应用说明POST常用于提交表单,数据附在请求正文,无长度限制,可提交敏感用户信息。爱奇艺请求实践步骤在PyCharm的ch_03项目新建文件,编写代码运行后,请求爱奇艺带参地址返回失败。form表单提交说明常见表单可用POST方法通过data参数提交,data为字典格式,GET会将表单数据拼接到URL后。爱奇艺网页五、复杂请求头定制请求头作用定制HTTP请求头可隐藏爬虫信息,模拟浏览器,一般通过headers参数完成设置。Content-Type参数说明告知客户端响应体的数据格式和编码,浏览器可据此调整页面字符集。常见格式类型列举包含text/html、application/json等多种数据、文档、图片格式及对应含义。referer参数作用若需在请求中添加请求来源信息,需要使用referer参数来实现该功能。示例操作流程使用POST访问Python官网,在PyCharm的对应项目中新建文件编写运行对应程序。六、上传文件

HTTP文件上传介绍客户端浏览器上传文件是特殊HTTP请求,文件尺寸偏大,内容用multipart/form-data格式编码。

上传请求格式说明用files关键字指定上传请求头字段,通过元组标注文件名、文件类型等相关属性。

requests上传语法requests库发送post请求上传文件,格式为requests.post(url,files=files,data=values)。

案例操作步骤在PyCharm的ch_03项目中新建文件,输入代码运行后,可成功发送POST上传请求。上传文件七、会话保持会话保持机制在负载均衡器上,识别客户端与服务器交互关联性,将相关请求分配至同一台服务器。session会话应用用户登录网站后,后续访问会沿用session保存的Cookie等参数,维持会话状态。requests创建会话通过requests.session()可创建session对象,能跨请求保存参数,发送各类请求。session对象特点代表一次完整用户会话,发送请求后可保存Cookie,后续请求自动携带提升效率。在PyCharm的ch_03项目新建example_24.py,编辑代码后选择当前文件运行验证功能。案例操作步骤项目实战实战1urllib发送请求访问网易有道网

urllib访问有道访问网易有道网页,添加请求头加载Cookie,输出访问结果,保存Cookie并循环输出请求头。

网易有道网页实战2urllib3发送请求访问东方财富网

爬虫超时设置说明爬虫不能无限等响应,超timeout设定时间会停止等待,timeout可发请求时设,也可创建代理对象时统一设置。

实现步骤介绍启动PyCharm打开指定项目,新建Python文件,依次创建相关对象,判断访问是否成功。

东方财富网网页实战3request发送请求访问千里马招标网

访问千里马招标网使用requests库访问千里马招标网,定义参数、数据和头信息,发送请求后输出响应信息并判断状态码。

千里马招标网网页THEEND谢谢项目四

解析数据CONTENTS目录任务一

Urllib解析URL任务二

json解析JSON数据任务三

requests解析网页任务四

正则表达式解析网页任务五

XPath解析网页BeautifulSoup解析网页

任务六思政目标

创新精神培养鼓励学生基于网页数据解析,积极探索新型数据处理方法,开拓更多新颖应用场景。

批判性思维培育引导学生在接受和分析网页数据过程中,辨别信息真伪,提高警惕不被虚假信息误导。技能目标URL与JSON解析可借助Urllib完成URL解析,同时能够利用json模块完成JSON数据的解析操作。基础网页获取解析会使用requests工具完成网页获取解析,且能使用正则表达式编写简单网页解析程序。XPath解析运用掌握XPath的基础用法,能够利用XPath编写完成简单网页解析程序。BeautifulSoup解析运用熟悉BeautifulSoup工具的使用,能够利用它编写完成简单网页解析程序。项目导读

Python数据解析工具针对不同类型数据,可选用对应Python工具解析,按需选择合适方法完成数据爬取与解析。

网页解析概念与方法网页解析是从网页返回信息中提取所需数据,可用正则或专门解析库提取,过程类似处理字符串。Urllib解析URL任务一任务一Urllib解析URL

任务引入大三学生小明参赛准备时,需解析处理大量URL,想了解Urllib库解析URL及URL编解码方法。模块用途说明从网页抓取或与WebAPI交互时,需解析或构造URL,Python可借助urllib.parse处理。模块功能分类urllib.parse是Python解析URL的专用模块,定义的函数主要分为URL解析和URL转码两类。任务一Urllib解析URL:知识准备一、Urllib解析URL

URL整体功能概述Urllib解析URL包括URL的分解、构建,以及解析修改URL路径,常用于网络爬虫操作。

URL分解基本介绍URL解析需将URL拆解为协议、域名、端口等组成部分,方便后续理解和操作。

URL分解核心函数urlparse()函数将URL拆为6个元素,urlsplit()不拆分参数,返回5元素元组。

分解操作实例说明在PyCharm项目ch_04新建文件,编写程序运行,解析哔哩哔哩搜索音乐URL各部分。

搜索“音乐”网址任务一Urllib解析URL:知识准备

URL构建操作方法URL构建可拼接域名与路径,urlunparse接受6元素元组,urlunsplit接受5元素可迭代对象。构建操作实例说明在PyCharm对应项目中新建文件,对哔哩哔哩搜索音乐URL做解析拼接,比较结果一致性。修改URL路径方法可通过urljoin()函数,将基本URL和相对URL合并生成完整的新URL路径。修改操作实例说明在PyCharm对应项目新建文件,拼接网易云音乐基地址与相对路径,获得飙升榜网址。

飙升榜网址二、URL转码

网址URL定义规则简短网址可以用引号或单引号直接定义,长而复杂网址可使用加号进行拼接。

拼接编码必要性网址拼接需进行编码转换,url中有中文、斜杠等歧义字符时必须编码。

键值对传参编码url用key=value传参键值对以&分隔,若参数本身含&或=需对符号编码转义。

urlencode()函数介绍该函数用于字典形式参数编码,支持序列或字典参数,返回&连接的参数字符串。二、URL转码

quote类函数介绍quote和quote_plus都可编码字符串,空格分别转成%20和加号,参数safe设置不同。

字典编码参数案例POST请求需先将字典参数用urlencode编码,再转成二进制才能附加到请求中发送。

网址解码基本方法对应不同中文编码需用不同解码方式,否则输出结果会产生乱码无法正常识别。

网址编码解码案例构造URL用到中文时需编码,案例实现了有道翻译含中文网址的编码和解码操作。“网易有道学习”翻译网址json解析JSON数据任务二任务引入交流会参赛项目需抓取JSON格式数据,需了解JSON,以及它和Python数据类型的对应转换方法。任务二json解析JSON数据任务二json解析JSON数据:知识准备JSON基础介绍JSON是轻量级数据交换格式,适用于网站前台与后台间的数据交互,采用独立于语言的文本格式。Python导入json模块Python自带json模块,在解析和处理JSON数据前,直接通过import命令导入该模块即可使用。JSON编码转换规则JSON编码过程是将Python类型转换为JSON类型,具体的不同类型转换结果有对应对照表可参考。JSON数据处理思路结构化数据多为JSON格式的字符串,处理时直接解析JSON数据,并从中提取所需的关键字段即可。一.Python编码为JSON

dumps函数功能将Python数据类型转换为JSON格式编码,通常用于把字典转换为字符串类型数据。

dumps参数说明包含必填转换对象obj,多个可选参数分别对转码规则、格式、输出进行个性化设置。一.Python编码为JSON

任务案例背景JSON是轻量级数据交换格式,易读写与解析生成,本次任务为获取商商查网页信息存为JSON。

案例操作步骤先启动PyCharm打开ch_04项目,新建example_06.py文件,编辑程序后选择当前文件运行。二.JSON解码为Python

JSON转换功能简介从网络或文件获取JSON数据后,需解码为Python可用格式,可使用Python内置json模块操作。

json.loads()用法json.loads()可将JSON格式字符串转换为字典或列表,包含s、encoding、cls等多个可选参数。

json.load()用法json.load()用于读取JSON文件,可将文件中的JSON内容直接转换为可用的Python对象。二.JSON解码为Python

JSON转换案例任务商商查网站案例要求将字典格式响应数据编码为JSON,再将JSON解码回字典格式。

案例操作步骤介绍启动PyCharm打开指定项目,新建Python文件,编辑代码后选择当前文件运行查看输出结果。requests解析网页任务三任务三requests解析网页

任务引入爬虫项目常需从HTML提取信息,可用Requests获取网页内容,还需解析HTML,引出相关问题。任务三requests解析网页:知识准备

网页内容组成特性网页本身由字符串组成,因此字符串形式是网页内容最常用的存储与输出格式。

Requests模块输出方法在Requests模块库中,通过r.text可以输出HTTP响应内容的字符串形式,也就是url对应的页面内容。HTML文档构成HTML文档一般由标记、头部、主体三个部分构成,每个部分对应特定功能和起止标签。整体标记作用<html></html>是HTML文件的起止标记,用于说明这是超文本标记语言描述的文件。头部部分功能<head></head>包含网页的标题、序言、说明等信息,本身不显示但影响网页显示效果。主体部分功能网页所有实际显示内容都包含在<body></body>两个正文标记之间,它也被称为实体标记。一、HTML文档结构二、网页解析

知识准备介绍Response对象的属性函数可将网页解析为不同数据格式,相关内容整理在表4-2中。Python案例介绍本案例为Python网页响应数据,要使用POST方法访问Python官网并输出不同格式响应数据。操作步骤说明启动PyCharm打开指定项目,新建对应Python文件,输入程序后选择当前文件运行查看结果。

不同格式的响应数据正则表达式解析网页任务四任务四正则表达式解析网页任务引入之前解析复杂网页效率低难处理不规则数据,可借助正则提取信息,需了解其模式、Python用法和查找替换方法网页内容本质特性网络爬虫获取的网页HTML内容本质上是字符串,目前可通过字符串函数或正则表达式处理。字符串函数处理缺点使用相关字符串函数处理HTML字符串,是处理字符串最基本的方法,但是效率很低还容易出错。正则表达式处理方式在基础字符串函数处理方法之外,还可以使用正则表达式来对网页HTML字符串进行处理。任务四正则表达式解析网页:知识准备一、正则表达式模式

正则表达式基础定义正则表达式描述字符串验证模式,可用于检查、替换、提取子串,由普通字符和特殊元字符组成。

常用元字符示例说明举三个示例说明+、*、?三个特殊符号的含义,分别对应字符最少出现一次、0次及以上、0或1次。

位置元字符案例解析以^[0-9]+abc$为例,分别解释^代表匹配开始位置,$代表匹配结束位置,[0-9]+匹配多个数字。一、正则表达式模式

01字符分类及转义规则分为普通字符和特殊字符,特殊字符有特殊含义,若要匹配本身需要添加反斜杠做转义处理。

02限定符基础介绍限定符指定正则组件需出现多少次才可匹配,共有*、+、?、{n}、{n,}、{n,m}共六种。

03Python模式创建要求Python中用字符串存储正则模式,推荐用单引号,含反斜杠时建议用原生字符串简化转义。二、使用re模块实现正则表达式

HTML网页特征说明多数网页源代码由HTML编写,HTML规律性强,同类内容结构一致,便于程序批量获取提取信息。

re模块功能与作用re模块是Python中处理字符串的工具,拥有独特语法和处理引擎,主要用于字符串查找与定位。

re模块爬网能力开发简单网络爬虫可不用爬虫框架,搭配使用re模块与Urllib3模块

温馨提示

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

评论

0/150

提交评论