- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)
#从指
您可能关注的文档
- 人工智能采集和分析基础(Python版)课件 学习单元二 NumPy和Pandas数据处理与分析.pptx
- 人工智能采集和分析基础(Python版)课件 学习单元六 Matplotlib可视化数据分析.pptx
- 人工智能采集和分析基础(Python版)课件 学习单元三 Requests网页访问.pptx
- 人工智能采集和分析基础(Python版)课件 学习单元五 Scrapy网页数据采集.pptx
- 人工智能采集和分析基础(Python版)课件 学习单元一 Python数据操作.pptx
- 人工智能采集和分析基础(Python版)课件全套 盛鸿宇 学习单元1--6 Python数据操作 ---Matplotlib可视化数据分析.pptx
- Unity进阶与实践解析 表2.6 Transform组件的成员变量.docx
- Unity进阶与实践解析 2.8 Time成员变量.docx
- Unity进阶与实践解析 2.9 Random类提供的常用成员变量.docx
- Unity进阶与实践解析 2.11 Mathf类常用方法.docx
- 某某单位2024年党建工作总结及2025年工作计划.doc
- 某某市发改委关于2024年度落实党风廉政建设工作责任制情况的报告.doc
- 某某局2024年全面从严治党和党风廉政建设工作总结.doc
- 某某区财政局2024年法治政府建设总结及2025年工作谋划.doc
- 2024年党管武装工作述职报告2篇.doc
- 2024年度国企党委书记抓基层党建工作述职报告3篇.doc
- 公司党委书记2024年述职述廉报告.docx
- 2024年度乡镇党委领导班子民主生活会(四个带头)对照检查材料.doc
- 市医疗保障局关于2024年法治政府建设工作情况的报告.docx
- 市民政局党组2024年巡察整改工作情况报告.docx
文档评论(0)