欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    工信版(中职)数据采集技术(初级)项目4:抽取网页数据教学课件.pptx

    • 资源ID:90588774       资源大小:5.78MB        全文页数:34页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    工信版(中职)数据采集技术(初级)项目4:抽取网页数据教学课件.pptx

    Y CF(中职)数据采集技术(初级)项目4:抽取网页数据教学课件CONTENTS 任务一:使用Xp ath 提取网页数据 任务二:使用正则表达式提取网页数据项目情景零经理:小张,数据采集中的提取拆分相关的技术你了解吗,咱要准备爬取网站上的数据了。小张:这个提取拆分有多种技术,比如XPath、Beautiful Soup、正则表达式等,不知道您说的是哪个?经理:根据项目需求,需要实现XPath提取网页数据,正则表达式拆分网页数据,你可以吗?小张:我只知道基本语法,如果需要,那我认真学习一下,完成该任务吧。经理:期待你完成任务。小张和经理谈完话后,开始进入了学习和调研阶段,经过查阅资料和学习,了解到实现XPath提取网页数据,正则表达式拆分网页数据都需要python的基础环境而且XPath和正则表达式提取拆分数据能够方便以后的数据爬取分析。于是开始了使用XPath提取网页数据,正则表达式拆分网页数据,探究之旅的步骤为:步骤一:使用XPath提取网页数据。步骤二:使用正则表达式提取网页数据。学习目标零【知识目标】了解什么是XPath 掌握XPath环境的安装 掌握XPath基本语法 掌握正则表达式的概念 掌握正则表达式的基本语法 掌握正则表达式的匹配原则【技能目标】能够构造lxml 能够使用XPath进行网页的提取 能够使用正则表达式提取网页信息 能够使用正则表达式拆分网页信息知识储备 任务一:使用XP ath 提取网页数据 壹1.XP a th 简介XPath(XML Path)是一种查询语言,也称为XML路径语言,它能在XML(Extensible Markup Language,可扩展标记语言)和HTML的树状结构中寻找结点,确定XML文档中某部分位置的语言。形象一点来说,XPath就是一种根据“地址”来“找人”的语言。用XPath从HTML源代码中提取信息可以大大提高效率。2.XP a th 安装在Python中,为了使用XPath,需要安装一个第三方库:lxml。(1)在Mac OS下安装lxml如果操作系统为Mac OS,可以直接使用pip。命令为pip install lxml,安装lxml,如图下图所示。知识储备 任务一:使用XP ath 提取网页数据 壹(2)在Ubuntu下安装lxml如果操作系统为Ubuntu,可以使用如下命令安装lxml:sudo apt-get install python-lxml(3)在Windows下安装lxml如果操作系统为Windows,可以使用安装pip install lxml(etree)进行安装,但安装成功几率比较小。常用的安装方法为:第一步:下载lxml文件,把lxml 3.7.3 cp36 cp36m win_amd64.whl这个文件的扩展名由.whl改为.zip,使用WinRAR或者7-Zip等解压缩工具来解压这个文件。解压以后,会得到两个文件夹,如下图所示。知识储备 任务一:使用XP ath 提取网页数据 壹第二步:把它们复制到Python安装文件夹下面的Libsite-packages文件夹中即可,如下图所示。知识储备 任务一:使用XP ath 提取网页数据 壹第三步:验证lxml安装是否安装成功打开Python的交互环境,输入import lxml,如果不报错,就表示安装成功,如下图所示。知识储备 任务一:使用XP ath 提取网页数据 壹3.XP a th 语法(1)基本语法使用Xpath需要从lxml库中导入etree模块,并使用HTML类对需要匹配的HTML对象进行初始化。HTML类的基本语法格式如下:Lmxl.etree.HTML(text,parase=None,*,base_url=None)HTML类的常用参数如下表所示。参数 说明text 接收str,表示需要转换为HTML的字符串。parase 接收str,表示选择的HTML解析器。base_url接收str。表示文档的元素URL,用于查找外部实体的相对路径。默认为None。知识储备 任务一:使用XP ath 提取网页数据 壹Xpath也可以使用类似正则的表达式来匹配HTML文件中的内容,常用匹配表达式如下表所示。表达式 说明nodename 选取nodename节点的所有子节点/从当前节点选取直接子节点/从当前节点选取子孙节点.选取当前节点.选取当前节点的父节点 选取属性说明:父节点表示当前节点的上一层节点,子节点表示当前节点的下一层节点。子孙节点表示当前节点的所有下层节点。知识储备 任务一:使用XP ath 提取网页数据 壹(2)谓语查找某个特定的节点或包含某个指定的值的节点可以使用Xpath中的谓语,通常被嵌在路径后的方括号中,如下表所示。表达式 说明/html/body/div1 选取属于body子节点下的第一个div节点/html/body/divlast()选取属于body子节点下的最后一个div节点/html/body/divlast()-1 选取属于body子节点下的倒数第二个div节点/html/body/divpositon()10.00 选取属于body子节点下的xx元素值大于10的节点知识储备 任务一:使用XP ath 提取网页数据 壹(3)功能函数当对象仅掌握了其部分特征,需要模糊搜索该类对象时,可使用Xpath中提供的功能函数进行模糊搜索,具体函数如表5-4所示。功能函数 示例 说明starts-with/divstarts-with(id,”co”)选取id值以co开头的div节点contains/divcontains(id,”co”)选取id值包含co的div节点and/divcontains(id,”co”)andcontains(id,”en”)选取id值包含co和en的div节点text()/licontains(text(),”first”)选取节点文本包含first的div节点任务描述任务一:使用XP ath 提取网页数据 壹任务描述在数据采集过程中,需要熟悉网页的数据提取和拆分。本任务是使用Google Chrome浏览器辅助构造XPath提取浪潮官网中轮播图下面的列表信息。使用XPath提取网页数据的思路如下:(1)打开浏览器,找到对应的网站地址。(2)使用“检查”的方式查看网页源码。(3)使用Google Chrome浏览器实现XPath路径的保存。(4)构造截取信息的XPath。(5)编写代码,使用python中的lxml截取所需信息。任务步骤任务一:使用XP ath 提取网页数据 壹任务步骤第一步:百度搜索浪潮大数据,打开浪潮官网。任务步骤任务一:使用XP ath 提取网页数据 壹任务步骤第二步:在网页上单击右键,在弹出的快捷菜单中选择“检查”命令,如下图所示。任务步骤任务一:使用XP ath 提取网页数据 壹任务步骤第三步:打开开发者工具,界面如下图所示。打开开发者工具后,使鼠标指针在开发者窗口中的HTML代码中移动,可以看到页面上不同的地方会高亮,说明当前鼠标指针指向的这个标签,就对应了网页中高亮的这一部分的代码。除了根据代码找网页位置,还可以根据网页位置找代码。任务步骤任务一:使用XP ath 提取网页数据 壹任务步骤第五步:单击图5-4方框框住的按钮,并将鼠标指针在网页上移动,可以看到开发者工具窗口中的代码随之滚动。任务步骤任务一:使用XP ath 提取网页数据 壹任务步骤第六步:选定要提取的位置以后,开发者工具窗口的代码如下图所示。任务步骤任务一:使用XP ath 提取网页数据 壹任务步骤第七步:在上面单击右键,选择“Copy”“Copy XPath”命令,如下图所示。寻找一个可以输入文字的地方,把结果粘贴下来,可以看到如下的XPath语句:/*id=11151f3a715d42088f88f2f2a5934cfa/div2/div1/table1任务步骤任务一:使用XP ath 提取网页数据 壹任务步骤这种写法是可以被lxml解析的。方括号中的数字,表示这是第几个该标签。例如/*id=11151f3a715d42088f88f2f2a5934cfa/div2,表示在id为“11151f3a715d42088f88f2f2a5934cfa”的标签下面的第2个标签。注意,这里的数字是从1开始的,这和编程语言中普遍的从0开始不一样。在开发者工具窗口中,每个标签的左边有个小箭头。通过单击小箭头可以展开或者关闭这个标签,通过这个小箭头,可以协助分析页面的HTML结构。请注意下图方框中的每一个标签。这些方框中的标签就对应了每一条信息。任务步骤任务一:使用XP ath 提取网页数据 壹任务步骤任务步骤任务一:使用XP ath 提取网页数据 壹任务步骤第九步:定位目标,获取想要的HTML代码,代码如下所示,如下图所示。#coding:utf-8import requestsimport urllib3from lxml import etreeurllib3.disable_warnings()url=https:/requests为引入python的一个常用的第三方库,用于数据采集过程中的URL资源处理。在使用过程中需要先进行安装,安装命令为pip install requests。任务步骤任务一:使用XP ath 提取网页数据 壹任务步骤第十步:构造lxml,提取table里面的内容。代码如下,效果如下图所示。t1=block0.xpath(/tbody/tr/td/a/text()#打印结果print(t1)知识储备任务二:使用正则表达式提取网页数据 贰1.正则表达式简介正则表达式(Regular Expression)简称Regex或RE,又称为正规表示法或常规表示法。常用于检索、替换符合某个模式的文本,正则表达式是一段字符串,它可以表示一段有规律的信息。Python自带一个正则表达式模块,通过这个模块可以查找、提取、替换一段有规律的信息。在程序开发中,要让计算机程序从一大段文本中找到需要的内容,就可以使用正则表达式来实现。2.Python 正则表达式模块 Python标准库中的re模块提供正则表达式的全部功能,可以直接引入。import re知识储备任务二:使用正则表达式提取网页数据 贰使用re的一般步骤如下:第一步:将正则表达式的字符串形式编译为Pattern实例。第二步:正则表达式处理韩式使用Pattern实例处理文本并获取匹配结果。第三步:使用Match实例获得信息,进行其他的操作re模块中常用的方法如下表所示。方法 说明compile 将正则表达式的字符串转化为Pattern匹配对象match将输入的字符串从头开始对输入的正则表达式进行匹配,一直向后直至遇到无法匹配的字符或到达字符串末尾,将立即返回None,否则获取匹配结果search将输入的字符串整个扫描,对输入的正则表达式进行匹配,获取匹配结果,否则输出Nonesplit 按照能够匹配的字符串作为分隔符,将字符串分割后返回一个列表findall 搜索整个字符串,返回一个列表包含全部能匹配的子串finditer 与findall方法作用类似,以迭代器的形式返回结果sub 使用指定内容替换字符串中匹配的每一个子串内容知识储备任务二:使用正则表达式提取网页数据 贰(1)compile方法compile方法将正则表达式的字符串转化为Pattern匹配对象,compile方法的语法格式如下:compile方法常用的参数如下表所示。参数 说明string 接收string。表示需要转换的正则表达式的字符串。无默认值flag接收string。表示匹配模式,取值为运算符“|”时表示同时生效,如re.I|re.M。默认为Noneflag参数的可选值如下表所示。可选值 说明re.I 忽略大小写re.M 多行模式,改变“”和“$”的行为re.S“.”任意匹配模式,改变“.”的行为re.L 使预定字符类wWbBsS取决与当前区域设定re.U 使预定字符类wWbBsSdD取决于unicode定义的字符属性re.X 详细模式,该模式下正则表达式可为多行,忽略空白字符并可加入注释知识储备任务二:使用正则表达式提取网页数据 贰(2)search方法search方法扫描整个字符串并返回第一个成功的匹配,语法格式如下:re.search(pattern,string,flags)search方法常用的参数如下表所示。参数 说明pattern 接收Pattern实例。表示转换后的正则表达式。无默认值string 接收string。表示输入的需要匹配的字符串。无默认值flag接收string。表示匹配模式,取值为运算符“|”时表示同时生效,如re.I|re.M。默认为None知识储备任务二:使用正则表达式提取网页数据 贰(3)findall方法findall方法搜索整个string,返回一个列表包含全部能匹配的子串,其语法格式如下。re.findall(pattern,string,flags)findall方法常用的参数如表所示。参数 说明pattern 接收Pattern实例。表示转换后的正则表达式。无默认值string 接收string。表示输入的需要匹配的字符串。无默认值flag接收string。表示匹配模式,取值为运算符“|”时表示同时生效,如re.I|re.M。默认为None知识储备任务二:使用正则表达式提取网页数据 贰3.正则表达式的基本符号(1)点号“.”一个点号可以代替除了换行符以外的任何一个字符,包括但不限于英文字母、数字、汉字、英文标点符号和中文标点符号。(2)星号“*”一个星号可以表示它前面的一个子表达式(普通字符、另一个或几个正则表达式符号)0次到无限次。(3)问号“?”问号表示它前面的子表达式0次或者1次。注意,这里的问号是英文问号。(4)反斜杠“”反斜杠在正则表达式里面不能单独使用,甚至在整个Python里都不能单独使用。反斜杠需要和其他的字符配合使用来把特殊符号变成普通符号,把普通符号变成特殊符号。反斜杠不仅可以把特殊符号变成普通符号,还可以把普通符号变成特殊符号。例如“n”只是一个普通的字母,但是“n”代表换行符。知识储备任务二:使用正则表达式提取网页数据 贰在Python开发中,经常遇到的转义字符,如下表所示。转义字符 意义n 换行符t 制表符 普通的反斜杠 单引号”双引号d 数字(5)数字“d”正则表达式里面使用“d”来表示一位数字。为什么要用字母d呢?因为d是英文“digital(数字)”的首字母。再次强调一下,“d”虽然是由反斜杠和字母d构成的,但是要把“d”看成一个正则表达式符号整体。(6)小括号“()”小括号可以把括号里面的内容提取出来。任务描述 任务二:使用正则表达式提取网页数据 贰在爬虫的开发中,需要把有用的信息从一大段文本中提取出来。正则表达式是提取信息的方法之一。本任务是使用python正则表达式拆分浪潮官网的数据。使用python正则表达式半自动爬取拆分浪潮官网的数据思路如下:1.打开编辑器,引入使用正则表达式所需要的包。2.模拟浏览器请求,请求浪潮官网的数据。3.使用findall方法匹配所有的标题。4.使用正则表达式提取所有的链接。任务步骤任务二:使用正则表达式提取网页数据 贰第一步:导入模块re模块:python内置的正则表达式模块。requests模块:http请求模块。urllib.request:主要用到里面的headers模拟浏览器请求。import csvimport re#导入python自带的http请求库urllib库的request请求模块import requestsimport urllib.request第二步:使用requests爬取整个网站,代码如下。#html存入了整个网页内容html=requests.get(https:/任务步骤任务二:使用正则表达式提取网页数据 贰第三步:使用正则表达式匹配网页标题(title)通过对源代码的观察我们发现,需要的网页标题title是放置在之间的文本内容,那这个时候就需要用到正则表达式来匹配其中的内容了。(.*?)。代码如下。第四步:使用findall方法匹配所有的标题title_re=(.*?)article_re=.*article_titles=re.findall(article_re,html)for art_title in article_titles:print(art_title)任务步骤任务二:使用正则表达式提取网页数据 贰第五步:使用正则表达式提取所有的链接。url_re=.*?article_url=re.findall(url_re,html)for art_url in article_url:print(art_url)

    注意事项

    本文(工信版(中职)数据采集技术(初级)项目4:抽取网页数据教学课件.pptx)为本站会员(春哥&#****71;)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开