版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据采集——数据采集技术Beautifulsouplxml库中的xpath010203知识点正则表达式re
正则表达式re01
正则表达式re--介绍
正则表达式re--介绍
正则表达式re--介绍
正则表达式re--介绍
正则表达式re--介绍
正则表达式re--介绍
正则表达式re--介绍
正则表达式re--介绍
正则表达式re--常用操作符(一)
正则表达式re--常用操作符(二)
正则表达式re--语法实例
正则表达式re--语法实例
正则表达式re--基本使用注意!re库是Python自带标准库,无需安装!
正则表达式re--表示类型
正则表达式re--表示类型
正则表达式re--主要功能函数
正则表达式re--主要功能函数re.findall()
正则表达式re--flags参数
正则表达式re--实操展示#假设已经获取到网页内容html_content="""<divclass="course-recommendation"><divclass="book"><h3class="title">社会统计分析方法-SPSS软件应用</h3><pclass="author">作者:郭志刚</p><pclass="isbn">ISBN:978-7-300-20676-9</p></div><divclass="book"><h3class="title">中国现当代文学(第四版
数字教材版)</h3><pclass="author">作者:刘勇</p><pclass="isbn">ISBN:978-7-300-31388-7</p></div></div>"""
正则表达式re--实操展示#提取书名title_pattern=r'<h3class="title">(.*?)</h3>'titles=re.findall(title_pattern,html_content)#提取作者author_pattern=r'<pclass="author">作者:(.*?)</p>'authors=re.findall(author_pattern,html_content)#提取ISBN序号isbn_pattern=r'<pclass="isbn">ISBN:(.*?)</p>'isbns=re.findall(isbn_pattern,html_content)fortitle,author,isbninzip(titles,authors,isbns):print(f"书名:{title},作者:{author},ISBN:{isbn}")html_content="""<divclass="course-recommendation"><divclass="book"><h3class="title">社会统计分析方法-SPSS软件应用</h3><pclass="author">作者:郭志刚</p><pclass="isbn">ISBN:978-7-300-20676-9</p></div><divclass="book"><h3class="title">中国现当代文学(第四版
数字教材版)</h3><pclass="author">作者:刘勇</p><pclass="isbn">ISBN:978-7-300-31388-7</p></div></div>"""
介绍lxml库中的xpath02
lxml库中的xpath--安装和使用在Python中,常用lxml库来使用XPath进行HTML和XML文档的解析。使用pip安装lxml:这是最常用的安装方式,适用于大多数Python环境。打开命令行终端,输入以下命令:pipinstalllxml或pipinstalllxml-i/simple安装完成后,可以在Python代码中导入lxml库进行测试。例如:fromlxmlimportetree
lxml库中的xpath--案例一etree.HTML()可以用来解析字符串格式的HTML文档对象,将传进去的字符串转变_Element对象。例:h1标签是未闭合的,etree.HTML()不仅构造了一个XPath解析对象_Element,h1标签也被补全,如下所示:
lxml库中的xpath--之基本路径表示/表示:从根节点选取。//表示:从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。.表示:选取当前节点。…表示:选取当前节点的父节点。@表示:选取属性。
lxml库中的xpath--之基本路径表示XML示例:<bookstore><bookcategory="COOKING">
<titlelang="en">EverydayItalian</title>
<author>GiadaDeLaurentiis</author>
<year>2005</year>
<price>30.00</price></book><computercategory="CHILDREN">
<titlelang="en">HarryPotter</title>
<author>JK.Rowling</author>
<year>2005</year>
<price>29.99</price></computer><bookcategory="WEB">
<titlelang="en">LearningXML</title>
<author>ErikT.Ray</author>
<year>2003</year>
<price>39.95</price></book></bookstore>
lxml库中的xpath--之基本路径表示按照XML示例,列出一些路径表达式以及表达式的结果如下:bookstore表示:选取当前位置下bookstore元素的所有子节点。/bookstore表示:选取根元素bookstore。注释:假如路径起始于正斜杠(/),则此路径始终代表到某元素的绝对路径!bookstore/book表示:选取当前位置下属于bookstore的子元素的所有book元素。//book表示:选取所有book子元素,而不管它们在文档中的位置。bookstore//book表示:选取当前位置下属于bookstore元素的后代的所有book元素,而不管它们位于bookstore之下的什么位置。//@lang表示:选取名为lang的所有属性。
lxml库中的xpath--案例二
lxml库中的xpath--之谓语按照xml示例,列出一些路径表达式以及表达式的结果如下:/bookstore/book[1]表示:选取根路径下属于bookstore子元素的第一个book元素。/bookstore/book[last()]表示:选取根路径下属于bookstore子元素的最后一个book元素。/bookstore/book[last()-1]表示:选取根路径下属于bookstore子元素的倒数第二个book元素。/bookstore/book[position(2)<=2]表示:选取根路径下最前面的两个属于bookstore元素的子元素的book元素。//title[@lang]表示:选取文档任意位置所有拥有名为lang的属性的title元素。//title[@lang=‘en’]/text()表示:选取文档任意位置所有title元素,且这些元素拥有lang属性值为en的文本数据
。/bookstore/book[price>35.00]表示:选取根路径下bookstore元素的所有book元素,且其中的price元素的值须大于35.00。/bookstore/book[price>35.00]/title表示:选取根路径下bookstore元素中的book元素的所有title元素,且其中的price元素的值须大于35.00。
lxml库中的xpath--案例三
lxml库中的xpath--之模糊匹配XPath通配符可用来选取未知的XML元素。*表示:匹配任何元素节点。@*表示:匹配任何属性节点。按照XML示例,列出一些路径表达式以及表达式的结果如下:/bookstore/*表示:选取从文档根开始的bookstore元素的所有子元素//* 表示:选取文档任意位置上的所有元素。//title[@*]表示:选取文档任意位置上所有带有属性的title元素。
lxml库中的xpath--案例四BeautifulSoup03
BeautifulSoup库--安装在Python中,常用beautifulsoup4库进行HTML和XML文档的解析。使用pip安装beautifulsoup4:这是最常用的安装方式,适用于大多数Python环境。打开命令行终端,输入以下命令:pipinstallbeautifulsoup4或pipinstallbeautifulsoup4-i/simple安装完成后,可以在Python代码中导入bs4库进行测试。例如:importbs4
BeautifulSoup--初始化对象①初始化对象:importrequestsfrombs4importBeautifulSouphtml_content=requests.get(url).text#获取网页内容soup=BeautifulSoup(html_content,'html.parser')#创建BeautifulSoup对象BeautifulSoup对象的某一个属性对应HTML中的标签元素,可通过“对象名.属性名”形式获取属性值,能快速定位目标元素,实现信息的精准抓取。常用的属性名及其含义如表1所示。
BeautifulSoup--元素选择②元素选择标签选择:直接通过标签名访问,如soup.p返回文档中第一个<p>标签对象。属性选择:使用find和find_all方法。soup.find('tag_name',attrs={'attr_name':'attr_value'}),可以找到第一个符合属性条件的标签;soup.find_all('tag_name',attrs={'attr_name':'attr_value'})则返回所有符合条件的标签列表。例如,soup.find_all('a',attrs={'href':True})会找到所有含有href属性的<a>标签。CSS选择器:使用soup.select(css_selector),可以通过CSS选择器的语法来选择元素,如soup.select('div.class_name')选择所有class为class_name的<div>标签。
BeautifulSoup--确定目标数据位置③确定目标数据位置:首先,分析目标网页的HTML结构,使用浏览器的开发者工具(如Chrome的F12)查看数据所在的标签及其属性,确定使用哪种选择方法(标签选择、属性选择、CSS选择器等)来定位包含数据的元素。数据提取:a.文本提取:对于获取标签内的文本数据,使用.text属性,如element.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年高中生物 专题1 传统发酵技术的应用 课题1 果酒和果醋的制作教学设计3 新人教版选修1
- 2024-2025学年高中语文 第二单元 番石榴飘香 6 外国诗二首(三)教学设计 语文版必修5
- 2025-2026学年四维目标教学设计
- 京东方A内部审计制度
- 企业双控教育培训制度
- 企业薪酬与绩效考核制度
- 会计离岗审计制度
- 信息化建设绩效考核制度
- 健全选人用人制度
- 公司协同审计制度模板
- JJG1036-2022天平检定规程
- 河北高职单招第二大类历年真题及答案
- 超级单品成就超级品牌报告鸭鸭羽绒服解数咨询
- 2025年腹部外伤试题及答案
- 污水池清理专项安全施工技术方案
- 赛马比赛活动方案
- 江苏省专升本2025年美术学艺术概论试卷(含答案)
- 职业调查报告:室内设计行业分析
- 《农村供水水质管理技术导则》编制说明
- 牡丹养殖知识培训内容课件
- 第三节 管理在线学习资源教学设计小学信息科技川教版2024三年级下册-川教版2024
评论
0/150
提交评论