第6-8讲:数据筛选_第1页
第6-8讲:数据筛选_第2页
第6-8讲:数据筛选_第3页
第6-8讲:数据筛选_第4页
第6-8讲:数据筛选_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

趣学Python爬虫数据预处理之数据筛选本课目录INDEX一个网络爬虫的基本构成数据的筛选方式数据正则提取数据bs4/lxml提取数据xpath提取案例实践一个网络爬虫的基本构成一个完整的网络爬虫就是三个大的组成部分找筛本讲我们就来探讨如何筛存数据的筛选方式爬虫获取的数据形态静态爬虫动态爬虫非结构化基本结构化数据的筛选方式正则表达式bs4/lxmletree/xpath硬刚模式根据规则直接提取(文本、网页、数据均可)解析模式Bs4他能读懂网页/跟浏览器一样,通过属性或方法定位目标标签找的是规律找的是关系解析模式以树状结构,一级一级穿透到目标找的是通路爬虫筛选可以了解三种

但是切记最后要死磕一个数据的筛选方式本课的三个库/包正则表达式包re

无需安装

Python自带pip

install

bs4

beautiful

soup

解析平台pip

install

lxml

解析器数据的筛选方式请求requests获取数据取得页面代码文本text数据筛选正则text提取规则提取bs4/xmltextbs4解析对象提取etree/xpathtextetree解析对象提取提取数据提取之页面分析我们先来分析一段页面文本特别注意!

分析页面是每个爬虫提取的重要步骤知己知彼

百战不殆htmlheadbodymetadivullia一级根级顶级二级 三级四五六级数据正则提取网传说正则是爬虫提取最难的,其实不然。之所以这么说是因为正则本身的确非常难,因为它适用于所有的文本关键字提取场景比如:邮件、电话、关键字等等。但在是爬虫中,使用正则可应用的规则极少。所以正则在爬虫这个场景中没有那么恐怖,这个也是正正个人比较喜欢的方式。注意!

之所以说正则是“硬刚”

,它会忽略页面的结构,按照正则表达式,提取文本内容链接为目标提取内容(.*?)匹配所有内容并提取.*?

匹配所有内容但不提取#

flags=re.S

这里特指是当出现

.匹配符号时,匹配全文,无论是否有换行、空格

##正则提取的重点在于找到相同的规律#数据正则提取通常来说,

一个页面为了便于维护,同类内容使用一样的标签,换句话说他们的“规律”是一样的比如说课程的名字都是

一个

li标签

内含一个a标签,a标签

是我们需要提取的内容既然知道

a标签是我们需要的终极目标,为什么不直接提取a呢?WHY?数据正则提取如果正则表达式写成这样,

就是直接提取a标签内容干扰项目标项但是,这个页面里有干扰项,会导致数据提取不够精准所以,我们要保证提取的a标签必须要在li标签内知识延伸a标签,是一个超链接标签,即点击一个文字就可以跳转到另一个页面。a标签在静态页面上出镜率是极高的数据bs4/lxml提取bs4+lxml构建方式“指名道姓”法“路径规则”法引入bs4包打开一个文本创建soup对象content目标文本使用lxml解释器注意!这里lxml无需引入,bs4会自动引入当soup对象成功建立以后,原来的文本,就已经被解析成一个网页了,通俗的说,bs4就已经认识里边存在的标签、属性、文本,我们对soup这个对象操作的时候,就可以通过表达式或方法直接进行所需数据提取。注意!这里的content可以是从requests直接返回的文本方法一提取方法二数据bs4/lxml提取bs4+lxml“指名道姓”法

单条件定位res=soup.find_all(name=

‘a’)返回一张列表,提取了所有a标签根据标签tagName即标签名称(<a>

<p>

<div>)定位提取[<a

href="https://www">点击进入万门大学</a>,<a

href="https://"

style="width:30px">英语外刊精读精练</a>,<a

href="https://www.wanmen.">特许金融分析师</a>,<a

href="https://">Photoshop入门到精通</a>,<a

href="https:///">趣学Python爬虫</a>]定位标签特别注意!列表的每个元素是一个对象!获取目标数据my_info=

res[0].text输出:点击进入万门大学文本获取属性获取my_info=

res[0].attrs[‘href’]输出:https//数据bs4/lxml提取bs4+lxml“指名道姓”法

–双条件定位与叠加定位我们要精确提取排除干扰怎么办?锁定提取范围注意我们之前的提取范围是针对全部页面,现在我们可以看到,需要提取的内容实际上是在div这个大标签里的ul下的li下的a叠加提取条件因为有两个div,我们要去确定是哪一个,只通过div标签定位是不够的,我们可以加上div里的属性对最终目标提取二级筛选穿透到a标签</div>,])res=soup.find_all(name=‘div’,attrs={'class':'others’}

)返回一张列表,提取了所有div标签(满足条件的只有一个特别注意!列表的每个元素是一个对象![<divclass="others"id="_others"><ul><li><ahref="https:///courses/5fa"style="width:30px">英语外刊精读精练</a></li><li><a

href="https:///courses/5ef1">特许金融分析师(CFA

三级)</a></li>(……省略)双条件定位叠加定位获取数据my_info=res[0].find_all(name=‘a’)[<ahref="https:///,..,

]获取数据获取全部文本属性forxin

my_info:print(x.text,x.attrs[‘href’]

)数据bs4/lxml提取bs4+lxml“指名道姓”法

–双条件定位与叠加定位英语外刊精读精练

https://www.wanm/courses/5fa特许金融分析师(CFA

三级)

https://www.wanm/courses/5ef1….省略输出:数据bs4/lxml提取bs4+lxml“路径规则”法res=soup.select(selector

=“#_others>ul>li>a”

)路径定位#

定位id属性

.

定位class属性特别注意!

>

代表一级一级向下穿透[<ahref="https://"style="width:30px">英语外刊精读精练</a>,<a

href="https:///">特许金融分析师</a>,<a

href="https://">Photoshop入门到精通</a>,<a

href="https://www.wanme">趣学Python爬虫</a>]获取 forxin

my_info:目标 print(x.text,x.attrs[‘href’]

)数据输出:英语外刊精读精练

https://www.wanm/courses/5fa特许金融分析师(CFA

三级)

https://www.wanm/courses/5ef1….省略数据xpath提取etree(lxml)+

xpath数据提取从lxml引入etree包读取本地文档创建页面解析对象Content目标文本xpath路径定位页面层级路径(标签的从属关系)etree(lxml)+

xpath从头开始res=tree.xpath(“/html/head/title”

)路径定位返回一张列表,提取了当前路径满足条件的所有数据特别注意!列表的每个元素是一个对象![<Elementtitleat

0x7f99f8625be0>]数据提取my_info=

res[0].text输出:万门大学特别注意!

/html/head/title

如果你从头开始,一定要以/开始,这个代表“根”数据xpath提取etree(lxml)+

xpath属性定位res=

tree.xpath('/html//div[@class="others"]//a')属性定位返回一张列表,提取了当前路径满足条件的所有数据特别注意!列表的每个元素是一个对象![<Elementpat

0x7f84d8f1db40>,<Elementpat

0x7f84d8f1db90>,<Elementpat

0x7f84d8f1dbe0>,<Elementpat

0x7f84d8f1dc30>]数据提取forxinres:print(x.text)输出:英语外刊精读精练特许金融分析师(CFA

三级)Photoshop入门到精通趣学Python爬虫数据xpath提取etree(lxml)+

xpath定位后提取属性值数据xpath提取res=tree.xpath(‘/html//a/@href’

)属性定位返回一张列表,提取了当前路径满足条件的所有数据列表直接装载属性值字符串['','https:///courses/5fa','https:///courses/5ef1',

'https:///courses/5fac',

'https:///courses/5fb768a429']数据xpath提取xpath路径

温馨提示

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

评论

0/150

提交评论