《数据采集技术》课件-Xpath语法与lxml库应用_第1页
《数据采集技术》课件-Xpath语法与lxml库应用_第2页
《数据采集技术》课件-Xpath语法与lxml库应用_第3页
《数据采集技术》课件-Xpath语法与lxml库应用_第4页
《数据采集技术》课件-Xpath语法与lxml库应用_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

项目三

动态网页数据解析目录Content1

使用BeautifulSoup解析“浪潮云说”网页数据2

使用Xpath解析“新闻动态”网页数据项目导言零请求部分解析部分网络爬虫程序通过模拟浏览器发送请求并获取响应通过对响应后返回的页面内容进行解析,并通过定位到数据所在元素获取数据,最终实现网页数据的采集学习目标零知识目标了解Xpath和BeautifulSoup相关概念熟悉Xpath节点定位掌握Xpath数据提取精通BeautifulSoup使用技能目标具备Xpath解析文档和提取数据的能力具备安装BeautifulSoup的能力具备使用BeautifulSoup提取页面数据的能力具备网页数据解析与提取的能力素养目标具备良好的沟通能力和团队合作精神具备强烈的责任感和积极的工作态度具备较强的执行能力使用Xpath解析“新闻动态”网页数据壹Xpath简介任务技能lxml解析库安装、lxml解析库使用定位元素定位、属性定位数据提取属性值提取、元素包含内容提取使用Xpath解析“新闻动态”网页数据壹1Xpath简介Xpath,英文全称为“MLPathLanguage”,是一种通过元素和属性遍历定位XML文档中信息的路径语言。尽管Xpath用于XML文档内容的搜索,但同样可以作用于HTML等半结构化文档。Xpath选择功能十分强大,通过简明的路径表达式,能够使用在大多数需要定位节点的场景中,不仅可以实现节点的定位外,Xpath还可以实现字符串、数值、时间的匹配以及节点、序列的处理等。使用Xpath解析“新闻动态”网页数据壹(1)lxml解析库安装Step1输入“/project/lxml/#files”,进入lxml源码文件下载界面选择符合Python版本的lxml源码文件并下载使用pip命令通过lxml源码文件进行lxml的安装打开Python的交互环境,输入importlxml,如果不报错,就表示安装成功Step2Step3Step4使用Xpath解析“新闻动态”网页数据壹(2)lxml解析库使用etree模块常用方法方法描述HTML()解析HTML文档XML()解析XML文档parse()解析文件tostring()将节点对象转化为bytes类型xpath()实现标签的定位和内容的捕获使用Xpath解析“新闻动态”网页数据壹①HTML()HTML方法包含参数参数描述text字符串类型的HTML文本parser解析器base_url网站根地址,用于处理网页资源的相对路径parser可选参数值参数值描述XMLParser解析XMLXMLPullParser利用事件流模型来解析XMLHTMLParser解析HTMLHTMLPullParser利用事件流模型来解析HTML使用Xpath解析“新闻动态”网页数据壹②

XML()XML()与HTML()方法基本相同,不同之处在于HTML主要用于对HTML文档内容进行解析,而XML()则用于解析XML格式文档。语法格式:fromlxmlimportetreeetree.XML(text,parser=None,base_url=None)使用Xpath解析“新闻动态”网页数据壹③parse()XML()和HTML()主要使用在数据采集之后,可以解析Requests、Urllib的request模块发送请求后响应的XML或HTML内容,而parse()方法则用于对本地文件中包含的内容进行解析。语法格式:fromlxmlimportetreeetree.parse(source,parser=None,base_url=None)使用Xpath解析“新闻动态”网页数据壹parse()方法包含参数参数描述source文件路径,包含xml、html、txt等格式文件parser解析器base_url网站根地址,用于处理网页资源的相对路径使用Xpath解析“新闻动态”网页数据壹④tostring()tostring()方法主要作用于Element对象,可以将Element对象包含内容转换为bytes类型。语法格式:fromlxmlimportetreeetree.tostring(Element,pretty_print=True,encoding="utf-8")使用Xpath解析“新闻动态”网页数据壹tostring()方法包含参数参数描述ElementElement对象pretty_print格式化输出,值为True或Falseencoding编码格式使用Xpath解析“新闻动态”网页数据壹⑤xpath()XPath()即为lxml的主要方法,可以解析XML或HTML文档并从中提取指定内容,其同样作用于Element对象。在使用时,其可以接收路径表达式提取数据,并将结果以Element对象列表的形式返回。语法格式:fromlxmlimportetreeetree.xpath(path,namespaces=None,extensions=None,smart_strings=True)使用Xpath解析“新闻动态”网页数据壹xpath方法包含参数参数描述path路径表达式namespaces名称空间extensions扩展smart_strings是否开启字符串的智能匹配使用Xpath解析“新闻动态”网页数据壹2定位(1)元素定位符号和方法描述/从根节点选取//从匹配选择的当前节点选择文档中的节点,不考虑它们的位置.选择当前节点..选取当前节点的父节点|设置多个路径表达式*匹配任何元素节点nodeName选取名为nodeName的所有节点nodeName[n]选取名为nodeName第n个节点nodeName[last()]选取名为nodeName最后一个节点nodeName[last()-n]选取名为nodeName倒数第n+1个节点nodeName[position()<n]选取名为nodeName前n-1个节点node()匹配任何类型的节点元素定位常用符号和方法使用Xpath解析“新闻动态”网页数据壹常用的元素定位表达式表达式描述//div从根节点选取所有div元素//div/p/a[2]选取第二个a元素//div/p[1]|//div/p[last()]选取第一个、最后1个p元素//div/*选取所有div节点下的任意元素节点使用Xpath解析“新闻动态”网页数据壹节点关系常用属性属性描述ancestor选取当前节点的所有先辈(父、祖父等)ancestor-or-self选取当前节点的所有先辈(父、祖父等)以及当前节点本身self选取当前节点child选取当前节点的所有子元素descendant选取当前节点的所有后代元素(子、孙等)descendant-or-self选取当前节点的所有后代元素(子、孙等)以及当前节点本身parent选取当前节点的父节点following选取文档中当前节点的结束标签之后的所有节点following-sibling选取当前节点之后的所有同级节点preceding选取文档中当前节点的开始标签之前的所有节点preceding-sibling选取当前节点之前的所有同级节点attribute选取当前节点的所有属性使用Xpath解析“新闻动态”网页数据壹属性定位常用符号符号描述@属性选取包含指定属性的元素@*选取包含任意属性的元素@[条件表达式]选取属性符合指定值的元素(2)属性定位使用Xpath解析“新闻动态”网页数据壹Xpath中常用的运算符关系运算符逻辑运算符算术运算符使用Xpath解析“新闻动态”网页数据壹3数据提取(1)属性值提取语法格式:nodeName/@属性在Xpath中,定位到节点后,只需通过“@属性”的方式获取该节点包含指定属性的属性值,并以列表的形式返回。使用Xpath解析“新闻动态”网页数据壹(2)元素包含内容提取语法格式:nodeName/text()相比于属性值的提取,元素包含内容的提取通过text()方法实现,内容包含文本、换行符、制表符等,并且结果同样以列表的形式返回。任务实施壹使用Xpath定位到每条新闻信息所在节点查看网页确

温馨提示

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

评论

0/150

提交评论