《数据采集技术》课件-项目二 任务3 使用BeautifulSoup获取豆瓣电影 TOP250_第1页
《数据采集技术》课件-项目二 任务3 使用BeautifulSoup获取豆瓣电影 TOP250_第2页
《数据采集技术》课件-项目二 任务3 使用BeautifulSoup获取豆瓣电影 TOP250_第3页
《数据采集技术》课件-项目二 任务3 使用BeautifulSoup获取豆瓣电影 TOP250_第4页
《数据采集技术》课件-项目二 任务3 使用BeautifulSoup获取豆瓣电影 TOP250_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

项目二:爬取豆瓣电影网站目录01任务1使用正则表达式02任务2:使用Xpath爬取豆瓣电影排行榜03任务3:使用BeautifulSoup爬取豆瓣电影TOP250任务3:使用BeautifulSoup获取豆瓣电影TOP250

任务描述豆瓣电影拥有丰富的电影信息资源,包括电影的基本详情、用户评分与评价、影片类型等。上一个任务我们使用Xpath实现了对豆瓣电影排行榜中数据的提取,此次我们应用BeautifulSoup这一更强大的解析工具,

来实现对豆瓣电影top250榜单数据的爬取任务。任务目标正确安装BeautifulSoup0203了解BeautifulSoup的简单使用01认识BeautifulSoup3.1.1BeautifulSoup基本概念Python的一个HTML或XML的解析库,我们可以用它来方便地从网页中提取数据,即借助网页的结构和属性等特性来解析网页(工具箱)。它可以自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码,不需要考虑编码方式,除非文档没有指定一个编码方式,仅仅需要说明一下原始编码方式就可以了。3.1BeautifulSoup概述3.1BeautifulSoup概述3.1.2BeautifulSoup的安装在pyechram的命令行界面输入

pip3installbeautifulsoup4

进行安装3.1BeautifulSoup概述BeautifulSoup在解析时实际上依赖解析器,它除了支持Python标准库中的HTML解析器外,还支持一些第三方解析器(比如lxml)BeautifulSoup支持的解析器推荐使用,lxml解析器:速度快,容错能力强实例未闭合把要解析的字符串以标准的缩进格式输出输出HTML中title节点的文本内容解析器的类型完成不完整的HTML自动格式更正初始化3.2BeautifulSoup基本用法3.2.1节点选择器

—直接调用节点的名称就可以选择节点元素,再调用string属性就可以得到节点内的文本了,这种选择方式速度非常快。如果单个节点结构层次非常清晰,可以选用这种方式来解析。

注:当有多个节点时,这种选择方式只会选择到第一个匹配的节点,其他的后面节点都会忽略。3.2BeautifulSoup基本用法3.2.2提取信息

1、获取名称—利用name属性可以获取节点的名称

3.2BeautifulSoup基本用法

2、获取属性—调用attrs获取所有属性

方法一:

3.2BeautifulSoup基本用法

方法二:直接在节点元素后面加中括号,传入属性名

注:返回结果:

字符串(值唯一)

字符串组成的列表(值不唯一)3.2BeautifulSoup基本用法3、获取内容—利用string属性获取节点元素包含的文本内容3.2BeautifulSoup基本用法4、嵌套选择—Tag类型对象同样可以继续调用节点进行下一步的选择

注:在Tag类型的基础上再次选择得到的依然还是Tag类型

3.2BeautifulSoup基本用法3.2.3关联选择

—先选中某一个节点元素,然后以它为基准再选择它的子节点、父节点、兄弟节点等1、基于属性选择1)子节点和子孙节点

情况1:选取节点元素之后,想要获取它的直接子节点-调用contents属性

结果:列表形式(contents属性得到的结果是直接子节点的列表)3.2BeautifulSoup基本用法情况2:调用children属性来选择,返回结果是生成器类型3.2BeautifulSoup基本用法情况3:要得到所有的子孙节点的话,可以调用descendants属性结果:生成器(descendants会递归查询所有子节点,得到所有的子孙节点)3.2BeautifulSoup基本用法2)父节点和祖先节点情况1:获取某节点的直接父节点

3.2BeautifulSoup基本用法情况2:获取所有的祖先节点

3.2BeautifulSoup基本用法3)兄弟节点(同级节点)

3.2BeautifulSoup基本用法4)提取信息

单个节点:直接调用string、attrs等属性获得其文本和属性

多个节点的生成器:转为列表后取出某个元素,然后再调用string、attrs等

属性获取其对应节点的文本和属性3.2BeautifulSoup基本用法2、方法选择器1)find_all—查询所有符合条件的元素

API:find_all(name,attrs,recursive,text,**kwargs)

实例一:name—根据name参数来查询元素(节点名称)

3.2BeautifulSoup基本用法实例二:attrs—传入属性进行查询

①attrs参数为字典类型

②直接传入参数

3.2BeautifulSoup基本用法实例三:String—用来匹配节点的文本,传入的形式可以是字符串,也可以是正则表达式对象

3.2BeautifulSoup基本用法2)find—查询符合条件的元素,返回单个元素,即第一个匹配的元素

3.2BeautifulSoup基本用法3)其他查询方法—与前面方法区别在于查询范围不同

find_parents和find_parent:前者返回所有祖先节点,后者返回直接父节点。

find_next_siblings和find_next_sibling:前者返回后面所有的兄弟节点,后者返回后面第一个兄弟节点。

find_previous_siblings和find_previous_sibling:前者返回前面所有的兄弟节点,后者返回前面第一个兄弟节点。find_all_next和find_next:前者返回节点后所有符合条件的节点,后者返回第一个符合条件的节点。find_all_previous和find_previous:前者返回节点前所有符合条件的节点,后者返回第一个符合条件的节点。

3.2BeautifulSoup基本用法3、CSS选择器—调用select方法,传入相应的CSS选择器即可实例3.2BeautifulSoup基本用法嵌套选择

3.2BeautifulSoup基本用法获取属性3.2BeautifulSoup基本用法获取文本方法一:string属性方法二:get_text

3.3任务实施-使用BeautifulSoup的爬取豆瓣电影top250步骤1:分析网站结构,确定目标数据项3.3任务实施-使用BeautifulSoup的爬取豆瓣电影top250步骤2:分析翻页逻辑首先我们对比第一页和第二页的url。Https:///top250/top250?start=25&filter我们会发现在第二个URL的?后面多了两个参数,对比网页数据,可以看出每一页电影的开始编号对应着start参数的数字。3.3任务实施-使用

温馨提示

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

评论

0/150

提交评论