Python程序设计教程-14_爬取与分析网页中的数据

PPT
  • 阅读 72 次
  • 下载 0 次
  • 页数 26 页
  • 大小 179.321 KB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档8.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
Python程序设计教程-14_爬取与分析网页中的数据
可在后台配置第一页与第二页中间广告代码
Python程序设计教程-14_爬取与分析网页中的数据
可在后台配置第二页与第三页中间广告代码
Python程序设计教程-14_爬取与分析网页中的数据
可在后台配置第三页与第四页中间广告代码
Python程序设计教程-14_爬取与分析网页中的数据
Python程序设计教程-14_爬取与分析网页中的数据
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 26
  • 收藏
  • 违规举报
  • © 版权认领
下载文档8.00 元 加入VIP免费下载
文本内容

【文档说明】Python程序设计教程-14_爬取与分析网页中的数据.pptx,共(26)页,179.321 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-2394.html

以下为本文档部分文字说明:

Python3程序设计主讲教师:14爬取与分析网页中的数据软件工程师系列Python3程序设计第14章爬取与分析网页中的数据本章内容爬取网页的urllib库和requests库解析网页的beautifulsoup4库网

页爬取技术的应用爬取网页就是通过程序下载网页,分析网页中的不同元素,从中提取有用的数据。软件工程师系列Python3程序设计14.1爬取网页的urllib和requests库网页爬取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地。urllib和urllib2两个标准库均支

持网页内容读取。Python3使用标准库urllib库来读取网页。requests是目前优秀的网页内容抓取的第三方库。软件工程师系列Python3程序设计14.1爬取网页的urllib和requests库爬取网页的基础知识1.HTTP协议用户浏览

网页的过程是客户端与Web服务器请求应答的过程。浏览器与服务器之间的通信的基础是HTTP协议。HTTP协议是一个无状态的协议,同一个客户端的一次请求和上次请求没有对应关系。2.HTTP工作过程(1)客户端与服务器建立连接。(2)服务器接到请求后,给予相应的响应信息

。(3)客户端接收服务器所返回的信息,浏览器解析并显示网页。软件工程师系列Python3程序设计14.1爬取网页的urllib和requests库爬取网页的基础知识3.网络爬虫也叫网络蜘蛛(WebSpider),Spider就是一只网上的蜘蛛,它是搜索引擎抓取系统的重要组成部分。网络爬

虫的主要目的是将互联网的网页下载到本地从而保存文件或备份文件。Web站点上的每个资源都有唯一的地址,该地址称为URL。protocol://hostname[:port]/path网络爬虫就是根据URL来获取网页信息的。网络爬虫应用分为两个步骤:连

接网络并获取网页内容urllib(或requests);对获得的网页内容进行处理(BeautifulSoup4)。软件工程师系列Python3程序设计14.1爬取网页的urllib和requests库urllib库1.urllib库简介urllib库提供系列函数或方法

,用于获取网页信息或下载网页。urllib.request模块。urllib.error模块。urllib.parse模块。urllib.robotparser模块。2.使用urllib库获取网页信息使用urll

ib.request.urlopen()函数可以打开一个网站,读取并打印网页信息。urllib.urlopen(url,data[,proxies])软件工程师系列Python3程序设计14.1爬取网页的urllib和reque

sts库2.使用urllib库获取网页信息urlopen()函数返回response对象函数的参数url表示远程数据的路径;data表示提交到url的数据;proxies用于设置代理。response对象的方法

readline()、readlines()、fileno()、close()等方法。info()方法:返回一个httplib.HTTPMessage对象。getcode()方法:返回HTTP状态码。如果是HTTP请求,200表示请

求成功完成,404表示网址未找到。geturl():返回请求的url。例14-1抓取搜狐网首页的前360个字节内容。软件工程师系列Python3程序设计14.1爬取网页的urllib和requests库requests库1.requests库概述简洁的处理HTTP请求的第三方

库,建立在Python的urllib3库基础上,是对urllib3库的再封装。requests库包括URL获取、HTTP长连接和连接缓存、自动内容解码、文件分块上传、连接超时处理、流数据下载等功能。2.requests库解析requests库的requ

ests.get()方法功能是网络爬虫和信息提交res=requests.get(url[,timeout=n])该函数返回的网页内容会保存为一个response对象。参数url必须采用HTTP或HT

TPS方式访问,可选参数timeout用于设定每次请求超时时间。软件工程师系列Python3程序设计14.1爬取网页的urllib和requests库requests库下面的代码测试requests.get()方法和requests.head()方法的返回值类型。>>>importreques

ts>>>r=requests.get("http://www.baidu.com")>>>type(r)<class'requests.models.Response'>>>>r2=requests.he

ad("http://www.baidu.com")>>>type(r2)<class'requests.models.Response'>软件工程师系列Python3程序设计14.1爬取网页的urllib和requests库requests库requests.get

()返回的response对象代表响应。response对象的主要属性如下。●statuscode:返回HTTP请求的状态,200表示连接成功,404表示失败。●text:HTTP响应内容的字符串形式,即url对应的页

面内容。●encoding:HTTP响应内容的编码方式。●content:HTTP响应内容的二进制形式。Response对象提供了两个方法。●json():如果HTTP响应内容包含JSON格式数据,则该方法解析JSON数据。●raise_for_status():如果status_code值

不是200,则产生异常。软件工程师系列Python3程序设计14.1爬取网页的urllib和requests库例14-3爬取网页内容的示例。2importrequests4defgetHTMLText():5r=requests.get(url,timeout=15)6r.ra

ise_for_status()7r.encoding='utf-8'#更改编码方式为utf-88returnr.text[:200]10url="http://www.sohu.com"11text=getH

TMLText()12print(text)软件工程师系列Python3程序设计14.2解析网页的beautifulsoup4库beautifulsoup4库概述beautifulsoup4库也称为bs4库或B

eautifulSoup库Python用于网页分析的第三方库,用来快速转换被抓取的网页。beautifulsoup4将网页转换为一颗DOM树。beautifulsoup4提供一些简单的方法以及类Py

thon语法来查找、定位、修改一棵转换后的DOM树,还能自动将送进来的文档转换为Unicode编码。例14-4使用bs4库访问网页元素。软件工程师系列Python3程序设计14.2解析网页的beautifulsoup4库beautifulsoup4库的对象Beau

tifulSoup将HTML文档转换成一个树形结构,每个结点都是对象,可以归纳为4种类型:Tag、NavigableString、BeautifulSoup、Comment。Tag对象,HTML中的一个标签。NavigableStr

ing对象,用于操纵标签内部的文字,标签的string属性返回NavigableString对象。BeautifulSoup对象,表示的是一个文档的全部内容,大部分时候可以把它看作是一个特殊的Tag。Comment对象,是一个特殊类型的NavigableS

ting对象,它的内容不包括注释符号。软件工程师系列Python3程序设计14.2解析网页的beautifulsoup4库BeautifulSoup库操作解析文档树1.遍历文档树(1)获取直接子结点contents属性和children属性可以获取Tag的直接子结点。(2)获取所有有子结

点descendants属性可以对所有Tag的子结点进行递归循环,需要遍历获取其中的内容。(3)获取结点内容当标签中不再包含标签,string属性返回标签中的内容;标签中内嵌唯一标签,那么string属性返回最里面标签的内容;Tag

包含了多个子标签结点,string的输出结果是None。软件工程师系列Python3程序设计14.2解析网页的beautifulsoup4库BeautifulSoup库操作解析文档树1.遍历文档树(4)获取多项内容strings属性用于获取多个内容,需要遍历获取。(5)父结

点父结点是当前结点的上级结点,parent属性用于获取父结点。(6)兄弟结点兄弟结点可以理解为和本结点处在同一层级的结点,next_sibling属性用于获取当前结点的下一个兄弟结点,previous_sibling则与之相反,如果结点不存在,则返回N

one。软件工程师系列Python3程序设计14.2解析网页的beautifulsoup4库2.搜索文档树(1)find_all()方法搜索当前Tag的所有子结点,语法如下。find_all(name,attrs,recursive,text,**kwargs)name:名字为

name的标签。attrs:按照Tag标签属性值检索,采用字典形式。recursive:如果只想搜索Tag的直接子结点,可以使用参数recursive=False。text:通过text参数可以搜索文本字符中内容。limit:限制返回结果的数量。软件工程师系列

Python3程序设计14.2解析网页的beautifulsoup4库2.搜索文档树(2)find()方法find()方法返回找到的第一个结果。find(name,attrs,recursive,text)参数含义与find_all()方法完全相同。软件工

程师系列Python3程序设计14.2解析网页的beautifulsoup4库3.用CSS选择器筛选元素CSS的选择器用于选择网页元素,可以分为标签选择器、类选择器和id选择器三种。在CSS中,标签名不加任何修饰,类名前面需要加点(.)标识,id名前加#号来标识。在bs4库中,也可以利用

类似的方法来筛选元素,用到的方法是soup.select(),返回类型是列表。软件工程师系列Python3程序设计14.3网页爬取技术的应用Python爬取指定URL的网页页面,首先需要分析页面的结构,了解标题、链接、时间等信息(即HTML元素和属性的描述)。以爬取“辽宁本科教学网”的通知

公告页面为例,说明网页爬取的过程。软件工程师系列Python3程序设计14.3网页爬取技术的应用爬取单一网页页面的信息爬取页面前的准备用GoogleChrome浏览器打开要爬取的页面,进入网页,打开“开发者工具”窗口。使用选择工具选择网页元素。使用requests库爬取网页

使用bs4库解析网页例14-5使用requests库和bs4库网页爬取示例。软件工程师系列Python3程序设计14.3网页爬取技术的应用爬取来自多个页面的信息爬取的信息可能需要来自多个页面。在这种情况下,用户可对爬取信息设置条件限制,例如设置爬取

关键词,或者检索某一时间段的信息等。在例14-5的基础上,爬取“辽宁本科教学网”通知公告页面中2018年4月1日之后的信息使用requests库爬取网页。关键技术“下一页”按钮的使用日期格式的处理软件工程师系列Python3程序设计14.3网页爬取技术的应用爬取单一网页页

面的信息查询的信息可能来自多个页面时,可通过“下一页”按钮,可以找到后续页面的链接。当要爬取的内容很多时,用户可以不断单击“下一页”按钮向后查找。观察浏览器的地址栏,URL地址可以视为由两部分组成,通过一部分是网址,另一部

分是文件路径,这部分地址应和“下一页”按钮的链接地址是一致的。在“开发者窗口”中,观察“下一页”按钮对应的网页中信息,找到该按钮对应的页面地址。不同页面的地址表达是不一样的,需要认真观察找出规律。软件工程师系列Python3程序设计14.3网页爬取技术的应用爬取单一网页页面的

信息例14-6使用requests库和bs4库爬取多个网页的示例。软件工程师系列Python3程序设计小结介绍了爬取网页的urllib库和requests库,讲解了解析网页的beautifulsoup4库。通

过示例介绍了爬取网页信息的过程。软件工程师系列Python3程序设计作业(1)分别使用urllib库和requests库爬取focus.tianya.cn首页内容。(2)编写程序获取http://www.ln

zsks.com/listinfo/NewsList_1002_1.html的招考要闻的信息。软件工程师系列Python3程序设计

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?