Python网络爬虫项目实战 项目三 网页内容解析.ppt

Python网络爬虫项目实战 项目三 网页内容解析.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
本章小结 本项目通过新闻页面信息的提取案例,详细讲解了网页解析的几种技术: 正则表达式re:针对文本的解析,可以从任何字符串中查找数据,包括XML和JSON,类似于模糊查找。特点:速度快、编写难。 XPath、BeautifulSoup:用于处理有层次结构的数据,针对HTML/XML的解析。 json模块:针对JSON的解析。内置,速度一般,使用简单。 JSONPath:针对JSON的解析。安装简单,速度一般,使用简单。 要解析页面数据,需要先分析页面HTML源代码结构,然后根据项目需要选用合适的工具、合适的方法。 感谢您的耐心观看 网页内容解析 情景描述 小明经过了前一个阶段的学习,已经理解了爬虫程序下载页面的过程,并且掌握了几种常用的爬虫库,顺利的下载了各种页面的源代码。但是网页源代码并不是他想要的最终数据结果,想要把目标数据从源代码里面提取出来,还要学习网页解析技术。 求学的三个条件是:多观察、多吃苦、多研究。 目录 任务一 使用re库解析新闻页面 任务二 使用lxml库解析新闻页面 任务三 使用bs4库解析新闻页面 任务四 Json数据解析 学习目标 ?掌握正则表达式的编辑和re库的使用方法 ?掌握XPath语法和lxml库的使用方法 ?掌握bs4的使用方法 ?掌握JSONPath的语法及Json数据的解析 网站服务器返回的数据里有一些是响应头部信息,大多是网页的html源代码,内容非常多且非常乱。我们需要的数据通常散落在html源代码的不同位置。想要从网页源代码中提取出有价值的目标数据或者新的目标URL,需要借助网页解析工具(网页解析器)。不管选择什么工具,想要把客户需要的目标数据从繁杂的html源代码里面提取出来都必须先观察分析网页源代码,从里面找出可用的规律,用以编程实现数据提取,并且能够在提取该网站其他页面数据时推广使用。 Python支持很多解析网页的技术,在这个项目里面我们先后用到了正则表达式re、XPath、Beautiful Soup和Json模块JSONPath。 任务一 使用re库解析新闻页面 任务描述 打开浏览器,随意访问大连理工大学出版社官网上的一个新闻页面,如图3-1所示。我们需要的数据是新闻的标题、信息来源、发布时间和新闻内容,但是页面上内容非常多,绝大多数不是我们需要的数据。 网站服务器返回给我们的页面源代码非常复杂,看起来很混乱,我们的任务是把目标数据从中提取出来。 本小节我们学习使用正则表达式把具体的新闻相关数据从页面源代码中提取出来。 1.1 正则表达式模块re 正则表达式是处理字符串的工具,通常被用来检索和替换字符串中符合指定规则的文本,功能强大、效率高,但是编写难度较大。 Python内置的re模块中包含了一些函数接口和类,用于定义规则处理字符串。 1.1 正则表达式模块re re模块的常用方法: 1、pile(string,flag):将正则表达式字符串转换为Pattern对象。 参数: string:string类型,需要转换的正则表达式字符串。 flag:string类型,匹配模式,默认为None。可选值有: re.I:忽略大小写; re.M :多行模式,改变“^”和“$”的行为; re.S :“.”任意匹配模式,改变“.”的行为; re.L :使预定字符类\w\W\b\B\s\S取决与当前区域设定; re.U :使预定字符类\w\W\b\B\s\S\d\D取决于unicode定义的字符属性; re.X :详细模式,该模式下正则表达式可为多行,忽略空白字符并可加入注释; 取值为运算符“|”时表示同时生效,如re.I|re.M。 1.1 正则表达式模块re re模块的常用方法: 2、re.match():将输入的字符串从头开始对输入的正则表达式进行匹配,一直向后直至遇到无法匹配的字符或到达字符串末尾,获取匹配结果,,否则返回None。 3、re.search(pattern,string[,flags]):扫描输入的字符串,对输入的正则表达式进行匹配,获取匹配结果,否则返回None。 参数: pattern:Pattern实例,表示转换后的正则表达式。 string:string类型,表示输入需要匹配的字符串。flag:同pile(string,flag)的flag参数。 1.1 正则表达式模块re re模块的常用方法: 4、re.findall(pattern,string[,flags]):搜索整个字符串,返回一个包含全部可匹配子串的列表。 参数: pattern:接收Pattern实例。 string:需要匹配的字符串。 flag 同pile(string,flag)的flag参数。 5、re.finditer:与fin

文档评论(0)

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

本文库主要涉及建筑、教育等资料,有问题可以联系解决哦

版权声明书
用户编号:5213302032000001
认证主体丁**

1亿VIP精品文档

相关文档

相关课程推荐