大数据采集与预处理技术(微课版)课件 1.3python爬虫依赖库数据解析工具包lxml_第1页
大数据采集与预处理技术(微课版)课件 1.3python爬虫依赖库数据解析工具包lxml_第2页
大数据采集与预处理技术(微课版)课件 1.3python爬虫依赖库数据解析工具包lxml_第3页
大数据采集与预处理技术(微课版)课件 1.3python爬虫依赖库数据解析工具包lxml_第4页
大数据采集与预处理技术(微课版)课件 1.3python爬虫依赖库数据解析工具包lxml_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

大数据采集与预处理技术*

*项目一表情图像数据采集和预处理序号软件配置要求1python3运行计算机内存8G以上2pytorch最新版本3pycharm最新版本一、项目目标:1、完成表情图像数据采集环境安装配置,掌握爬虫必备知识;2、完成表情图像数据爬虫采集程序设计和数据采集;3、完成表情图像数据预处理。二、环境要求:任务一表情图像数据采集一、任务目标1、完成python3、pytorch、requests、Lxml、BeautifulSoup等依赖库安装;2、熟悉Lxml依赖库的使用和Xpath语法;3、熟练掌握HTML文件结构,能够分析各组件元素的含义。二、python爬虫依赖库lxml对于爬虫请求的html网页,实际是xml文件,因此需要使用对于的解析工具找到目标资源,然后发起请求抓取资源。使用lxml库的第一个步骤永远是初始化,只有初始化之后我们才可以去使用它的语法。初始化方法如下:html=etree.HTML(text)1>参数:text:html内容的字符串2>返回值:html:一个lxml库的对象1、示例:lxml初始化htmlfromlxmlimportetree #使用的lxml库中的etree库html_content=""" #示例HTML文档<html><body><divid="content"><pclass="text">HelloWorld</p><pclass="text">Thisisatest</p><ahref="">Link</a></div></body></html>"""tree=etree.HTML(html_content) #解析HTML,#这里需要传入一个html形式的字符串result=tree.xpath('//p[@class="text"]/text()') #使用XPath提取数据print(result) #输出:['HelloWorld','Thisisatest']#开始初始化2、python爬虫依赖库lxml—xpath(lxml)语法lxml库的语法就是基于xpath语法来的,所以会了xpath语法,自然就会了lxml语法。寻找节点语法:语法含义nodename(节点名字)直接根据写的节点名字查找节点,如:div,p//在当前节点下的子孙节点中寻找,如:('//p')#选择所有<p>标签/在当前节点下的子节点中寻找,如:/div.代表当前节点(可省略不写,就像我们有时候写的相对路径),如:./div..当前节点的父节点,如:../div2、python爬虫依赖库lxml—xpath(lxml)语法示例:查找结点fromlxmlimportetreetext='''<body>

<div>这是测试的div</div>

<div>

<div>

这是嵌套的div标签

<p>

这是嵌套的p标签

</p>

</div>

</div><p>这是测试的p</p></body>'''html=etree.HTML(text)result=html.xpath('//div')#使用xpath语法,一是在子孙节点中寻找,二是寻找div的标签print(result)#结果:#[<Elementdivat0x1e4cadbf608>,<Elementdivat0x1e4cae512c8>,<Elementdivat0x1e4cae51348>]

首先,初始化一个html对象,然后调用在此基础上调用xpath语法,其中传入的参数为://div,意思是寻找其中的div标签。然后观察text字符串中的html代码,可以看见,里面总共只有三个div标签,符合结果。(div标签是成对出现,一组为:<div></div>)同学们可以使用print(etree.tostring(result[0],encoding='utf-8').decode('utf-8'))打印编码结果,使用循环打印试试!2、python爬虫依赖库lxml—xpath(lxml)语法(属性筛选)有时候需要的信息只在某一种标签中的某一个标签中,如一个网页中有很多的div标签,但是只有拥有class=“hello”的属性的标签才具有需要的信息。因此,掌握一些筛选的方法是必须的事情。属性筛选语法:方法名\符号作用@获取属性,如:tree.xpath('//a/@href')#选择所有<a>标签的href属性筛选属性,如:tree.xpath('//p[@class="text"]')#选择class为"text"的<p>标签[]通过索引选择节点,如:tree.xpath(‘//p[1]’)#选择第一个<p>标签,tree.xpath('//p[last()]')#选择最后一个<p>标签contains()判断属性中是否含有某个值(用于多值判断,如:tree.xpath('//p[contains(@class,"text")]')#选择class包含"text"的<p>标签starts-with()以特定字符串开头,如:tree.xpath('//p[starts-with(@class,"tex")]')#选择class以"tex"开头的<p>标签text()提取节点的文本内容,如:tree.xpath('//p/text()')#提取所有<p>标签的文本2、python爬虫依赖库lxml—xpath语法示例:筛选节点text='''<divclass="hello"><p>Hello,thisisusedtotested</p></div><divclass="hellotesthi"><div><div>你好,这是用于测试的html代码</div></div></div><divclass="button"><divclass="menu"><inputname="btn"type="button"value="按钮"/><div></div>''‘#初始化html=etree.HTML(text)#根据单一属性筛选#筛选出class="hello"的div标签hello_tag=html.xpath('//div[@class="hello"]')#注意筛选的方法都是在中括号里面的print(hello_tag)#结果为:[<Elementdivat0x2ba41e6d088>],即找到了一个标签,符合条件#找出具有name="btn"的input标签input_tag=html.xpath('//input[@name="btn"]')print(input_tag)#结果为:[<Elementinputat0x1751d29df08>],找到一个input标签,符合条件#筛选出具有class="hello"的div标签hello_tags=html.xpath('//div[contains(@class,"hello")]')print(hello_tags)#结果为:[<Elementdivat0x1348272d248>,<Elementdivat0x1348272d6c8>],即找到了两个div标签,符合条件2、python爬虫依赖库lxml—xpath(lxml)语法(按序筛选)有时候会有这样的需求,爬取的内容是一个table标签(表格标签),或者一个ul(标签),了解过html的应该都知道这样的标签,内部还有很多标签,比如table标签里就有tr、td等,ul里面就有li标签等。对于这样的标签,需要选择第一个或者最后一个或者前几个等。方法作用last()获取最后一个标签1获取第一个标签position()<=>num筛选多个标签(具体见实例)and,or逻辑运算符,and同时满足

,or任意满足,如:tree.xpath('//p[@class="text"and@id="para1"]'),tree.xpath('//p[@class="text"or@id="para1"]')*匹配任意节点,如:tree.xpath('//div/*')#选择<div>下的所有子节点2、python爬虫依赖库lxml—xpath语法示例:筛选节点fromlxmlimportetreetext='''<ul><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li></ul>'''#初始化html=etree.HTML(text)#获取第一个li标签first_tag=html.xpath('//li[1]') #lxml并没有first()方法print(first_tag)

#获取最后一个li标签last_tag=html.xpath('//li[last()]')print(last_tag)

#获取前五个标签li_tags=html.xpath('//li[posit

温馨提示

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

评论

0/150

提交评论