网站大量收购闲置独家精品文档,联系QQ:2885784924

人工智能采集和分析基础(Python版)课件 学习单元四 XPath和re内容解析.pptx

人工智能采集和分析基础(Python版)课件 学习单元四 XPath和re内容解析.pptx

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

任务1re解析

任务2XPath解析;任务1re解析;正则表达式主要用于文本数据,用来检索、替换符合某个规则的文本。本任务将使用re模块应用的正则表达式实现内容的解析,主要内容如下:

(1)抓取页面;

(2)内容截取;

(3)数据提取。

一、正则表达式概述

正则表达式主要用于对字符串进行过滤,受到大多数程序设计语言的支持。在Python中,正则表达式对字符串的逻辑操作包含在re模块中,能够通过一个由“元字符”与“普通字符”组成的字符串规则,从已知的字符串或文本中选取符合规则的内容。正则表达式元字符如表4-1所示。;其中,在组成正则表达式的字符中,默认情况下元字符按由左至右的顺序执行,但不同的字符在正则表达式中发生的作用有先后之分,元字符优先级为由上至下(见表4-1)。表4-2所示为一些常用的正则表达式。;二、正则表达式的定义

在re模块中,正则表达式在发挥作用之前,需要被定义。默认定义正则表达式有两种方式:一种是直接定义,只需在re模块提供的相关方法中,直接使用由“元字符”与“普通字符”组成的字符串规则利用re模块进行解释性地匹配。语法格式如下所示。

r=r正则表达式

另一种方式是通过re模块提供的compile()函数,将正则表达式字符串预编译成Pattern对象。与直接定义的方式相比,每次转换正则表达式,compile()函数只进行一次正则表达式对象的转换,之后不需转换即可直接使用该对象进行匹配。语法格式如下所示。

importre

r=pile(pattern,flags)

;其中,Pattern表示正则表达式字符串;flags用于设置匹配模式,如忽略大小写匹配、多行模式匹配等。需要注意的是,flags可以接受多个参数值,即可以设置多个匹配模式,参数值之间通过符号“|”连接。flags的常用参数值如表4-3所示。;在使用compile()函数生成正则表达式后,结果会以Pattern对象的形式返回,这个对象是一个编译后的正则表达式,编译后不仅能够复用和提升效率,也能够通过相关属性获得正则表达式的多个信息。Pattern对象的常用属性如表4-4所示。;三、正则表达式的使用

在Python中,re模块提供了多个应用正则表达式操作字符串的方法,如字符串的查询、??换、分割等。常用的正则表达式应用方法如表4-5所示。;1.?match()

在re模块中,match()方法可以从字符串的指定位置查找符合正则表达式的内容,也就是说,从起始位置就必须符合正则表达式的内容。如果匹配成功,则返回一个Match对象;如果匹配失败,则返回None。由于正则表达式的定义有两种方式,因此,match()方法在使用时同样有两种方法,语法格式如下所示。

importre

#方法一:直接使用正则表达式

re.match(pattern,string,flags)

#方法二:使用正则表达式对象

r=pile(pattern,flags)

r.match(string,pos,endpos);参数说明如表4-6所示。

match()方法在直接使用正则表达式时,会从字符串的首字母进行匹配;而使用正则表达式对象时,则可以指定起始位置、结束位置进行匹配。在匹配完成后,返回Match对象,这个对象只包含一次正则匹配的结果,可以通过相关属性或方法获取match()包含的信息。Match对象的常用属性和方法如表4-7所示。;2.?search()

search()方法从指定位置开始查找符合正则表达式的第一个内容,直到末尾,如果找到,则返回一个包含内容的Match对象,否则返回None。search()方法与match()方法的使用方法基本相同。语法格式如下所示。

importre

re.search(pattern,string,flags)

#从指定位置开始匹配

r=pile(pattern,flags)

r.search(string,pos,endpos)

另外,search()方法在直接使用正则表达式时,同样会从首字母开始;在使用正则表达式对象时,会从指定位置开始。;3.?findall()和finditer()

与match()方法和search()方法相比,findall()方法和finditer()方法是从字符串中查找符合正则表达式的所有内容。其中,findall()方法将匹配结果以列表形式返回,而finditer()方法将匹配结果以迭代器形式返回,并且迭代器中包含了多个Match对象。另外,在使用方式上,findall()方法和finditer()方法也与match()和search()方法类似。代码如下所示。

importre

re.findall/finditer(pattern,string,flags)

#从指

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档