Python程序设计与大数据-第7章-网络爬虫.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Python程序设计与大数据-第7章-网络爬虫.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 程序设计 数据 网络 爬虫
- 资源描述:
-
1、7.1网络爬虫工作的基本原理7.2网页内容获取-requests库概述7.3网页内容解析-Beautiful Soup库7.6实战:大数据论文文章标题采集习题7.5实战:热门电影搜索of5617.7实战:全国空气质量第七章网络爬虫7.4正则表达式第七章 网络爬虫of3127.1.1 网页的概念7.1 类的方法1、URL的含义URL(Uniform Resource Locator,URL)称为统一资源定位符,也称为网址。互联网上的每个页面,都对应一个URL。如:浏览上海市空气质量和pm2.5指标的网址为http:/ 网络爬虫of3137.1.1 网页的概念7.1 类的方法2、页面的渲染用户若想
2、要浏览城市空气质量排名情况,必须输入网址:http:/ 的结果,网页的样式,实际上是html源代码经过渲染后形成的。这个页面实际上是用户通过浏览器向DNS服务器提交http:/ 网络爬虫of3147.1.1 网页的概念7.1 类的方法3、网页文件的格式网页文件主要是由各种标签对构成的一个纯文本文件,如:与标签对,与标签对等,不同的标签有不同的作用。如:li标签定义列表项目,span标签被用来组合文档中的行内元素。标签可以有属性,可以有显示的文本。下面以表格第一行乐山市对应的第二列的html代码(乐山市)为例进行说明:与:是一对标签,class=td td-2nd,说明,span标签有一个cla
3、ss属性,值为td td-2nd,用于设置列的外观。乐山市,是span标签的内嵌标签,用于设置超链接的,超链接文本是“乐山市”,超链接网址是/air/leshan.html,是个相对路径,绝对路径是http:/ 网络爬虫of3157.1.2 网络爬虫的工作流程7.1 类的方法网络爬虫实质上是一个能自动下载网页的程序,它是搜索引擎中最核心的部分。通用网络爬虫是从一个或若干个初始网页上的URL开始,读取网页的代码并对页面结构进行分析、过滤,并对感兴趣的内容建立索引,同时提取网页上的其他感兴趣的超链接地址,放入到待爬行队列中,如此循环,直到满足系统的停止条件为止。在爬取网页过程中,如何根据当前网页的
4、超链接页面,形成待爬行队列呢?目前有基于IP 地址搜索策略、广度优先策略、深度优先策略和最佳优先等,具体请看相关文档。第七章 网络爬虫of3167.1.3 Python与网页爬虫7.1 类的方法使用Python 语言实现网络爬虫和信息提交是非常简单的事情,代码行数很少,也无须知道网络通信等方面知识,非常适合非专业读者使用。然而,肆意的爬取网络数据并不是文明现象,通过程序自动提交内容争取竞争性资源也不公平。就像那些肆意的推销电话一样,他们无视接听者意愿,不仅令人讨厌也有可能引发法律纠纷。在互联网上爬取数据,要遵从Robots 排除协议(Robots Exclusion Protocol),它也被
5、称为爬虫协议,是网站管理者表达是否希望爬虫自动获取网络信息意愿的方法。管理者可以在网站根目录放置一个robots.txt 文件,并在文件中列出哪些链接不允许爬虫爬取。一般搜索引擎的爬虫会首先捕获这个文件,并根据文件要求爬取网站内容。Robots 排除协议重点约定不希望爬虫获取的内容,如果没有该文件则表示网站内容可以被爬虫获得,然而,Robots 协议不是命令和强制手段,只是国际互联网的一种通用道德规范。绝大部分成熟的搜索引擎爬虫都会遵循这个协议,建议个人也能按照互联网规范要求合理使用爬虫技术。7.1网络爬虫工作的基本原理7.2网页内容获取-requests库概述7.3网页内容解析-Beauti
6、ful Soup库7.6实战:大数据论文文章标题采集习题7.5实战:热门电影搜索of5677.7实战:全国空气质量第七章网络爬虫7.4正则表达式第七章 网络爬虫of3187.2.1 requests对象7.2 网页内容获取-requests库概述http工作原理:HTTP是基于请求-响应模式的,客户端发出请求叫Request,服务器端的响应叫Response。HTTP请求服务器端,常用的方式是GET和POST。通常,GET表示向指定的服务器请求数据,POST表示向指定的服务器提交要被处理的数据。Requests请求的相关函数:Get(url,timeout=n):对应HTTP的get方法,获取
7、网页内容,timeout设定每次请求的超时时间,单位秒。该函数将网页的内容封装成一个Response对象并返回。Post(url,data=key:value):对应HTTP的post方式,其中字典用于传递客户端数据。第七章 网络爬虫of3197.2.2 response对象7.2 网页内容获取-requests库概述通过Response对象的属性可以获取网页内容。属性:Status_code:http请求返回的状态,整数,200表示连接成功,404表示失败。在处理网页数据前,要先判断该状态值。Text:页面内容,以字符串形式存储在text中。Encoding:HTTP响应内容的编码格式,通过
8、此属性可以更改返回页面的编码格式,便于处理中文。方法:Json():如果HTTP响应页面包含JSON格式数据,该方法能够在HTTP 响应内容中解析存在的JSON 数据,这将带来解析HTTP的便利。raise_for_status():方法能在非成功响应后产生异常,即只要返。回的请求状态status_code 不是200,这个方法会产生一个异常,用于tryexcept 语句。使用异常处理语句可以避免设置一堆复杂的if 语句,只需要在收到响应调用这个方法。第七章 网络爬虫of31107.2.2 response对象7.2 网页内容获取-requests库概述当遇到网络问题时阿,requests 会
9、产生几种常用异常。例如:DNS 查 询 失 败、拒 绝 连 接 等,requests 会 抛 出ConnectionError 异常。遇到无效HTTP 响应时,requests 则会抛出HTTPError 异常。若请求url 超时,则抛出Timeout 异常。请求超过了设定的最大重定向次数,则会抛出一个TooManyRedirects 异常。所以在使用requests 时,通常需要将此语句放在try快中进行处理。第七章 网络爬虫of31117.2.2 response对象7.2 网页内容获取-requests库概述【案例7-1】爬取天堂图片网中小黄人图片网页的内容import requests
10、def gethtmltext(url):try:r=requests.get(url,timeout=30)r.raise_for_status()return r.text except:return“url=http:/ Soup库7.6实战:大数据论文文章标题采集习题7.5实战:热门电影搜索of56127.7实战:全国空气质量第七章网络爬虫7.4正则表达式第七章 网络爬虫of31137.3.1 Beautiful Soup库概述7.3 网页内容解析-Beautiful Soup库beautifulsoup4 库,也称为Beautiful Soup 库或bs4 库,用于解析和处理HTML
11、和XML。它的最大优点是能根据HTML 和XML 语法建立解析树,进而高效解析其中的内容。类似于c#中的或HTTP中的文档类HTML 建立的Web 页面一般非常复杂,除了有用的内容信息外,还包括大量用于页面格式的元素,直接解析一个Web 网页需要深入了解HTML 语法,而且比较复杂。beautifulsoup4 库将专业的Web 页面格式解析部分封装成函数,提供了若干有用且便捷的处理函数。有关beautifulsoup4 库的更多介绍请参考这个第三方库主页:http:/ 网络爬虫of31147.3.1 Beautiful Soup库概述7.3 网页内容解析-Beautiful Soup库例如:
12、有一个描述学生选课的XML代码,表示20004146学生选修了2门课,20004176选修了1门课。20004146111167 2222 78 200041762222 70 第七章 网络爬虫of31157.3.1 Beautiful Soup库概述7.3 网页内容解析-Beautiful Soup库它对应的Beautiful Soup对象的逻辑结构可以理解成这样一棵树。树中一般有4类节点:Tag,NavigableString,BeautifulSoup,Comment,但很多时候,可以把节点当作 Tag 对象。第七章 网络爬虫of31167.3.2 beautifulsoup4 库常用方
13、法和tag节点7.3 网页内容解析-Beautiful Soup库beautifulsoup4 提供Xpath操作方式解析数据:1.即按照解析树的逻辑结构,解析数据。2.解析树上的常用节点是tag节点。3.常用方法:BeautifulSoup(html,”html.parser”):该方法需要两个参数,第一参数是需要提取数据的html文档内容或XML,第二个参数是指定解析器。该方法的目的是生成一颗解析树。find_all(name,attrs,recursive,string,limit):方法可以根据标签名字、标签属性和内容检索并返回标签列表。name为标签名;attrs为标签的属性名和值,
14、采用JSON表示;recursive,设置查找层次;string标签的字符串内容;limit返回匹配结果的个数。利用 string参数可以实现模糊查找。find(name,attrs,recursive,string):返回找到的第一个结果,find_all()函数由于可能返回更多结果,所以采用列表形式存储返回结果;find()函数返回字符串形式,找不到,返回None。第七章 网络爬虫of31177.3.2 beautifulsoup4 库常用方法和tag节点7.3 网页内容解析-Beautiful Soup库例如:根据选课学号和门数标签字符串,输出选课的学号。soup=BeautifulSo
15、up(200041462 201810125)tag=soup.scs print(tag.string)print(tag.contents0.name)print(tag.contents0.sno.string)soup.find_all(sno)7.1网络爬虫工作的基本原理7.2网页内容获取-requests库概述7.3网页内容解析-Beautiful Soup库7.6实战:大数据论文文章标题采集习题7.5实战:热门电影搜索of56187.7实战:全国空气质量第七章网络爬虫7.4正则表达式第七章 网络爬虫of31197.4.1 正则表达式概念7.4 正则表达式从网页中解析需要的数据,除
展开阅读全文