前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何将Beautiful Soup应用于动态网站抓取?

如何将Beautiful Soup应用于动态网站抓取?

原创
作者头像
用户7850017
修改2022-11-14 11:38:24
1.9K0
修改2022-11-14 11:38:24
举报
文章被收录于专栏:用户7850017的专栏

从大多数网站收集公共数据可能不是什么难事。但还有许多网站是动态的,并且使用JavaScript加载其内容。使用JavaScript动态加载内容,又被称为AJAX(非同步的JavaScript与XML技术)。面对这种情况,我们就需要用到不同的方法来从这些网站上收集所需的数据。今天,Oxylabs将为您重点介绍使用Beautiful Soup抓取AJAX动态网站的相关内容。

如何检测网站是否是动态的?

本期视频选择了quotes.toscrape.com这个公共网站进行抓取演示。首先,判断一个网站是否是动态网站的最简单方法是使用Google ChromeEdge,因为这两种浏览器内部都使用Chromium。

F12键打开“开发者工具”,接着按下CTRL+SHIFT+P组合键打开“命令菜单”。

现在,我们可以看到很多命令。先输入禁用,将命令过滤之后,会出现禁用JavaScript的命令,选择此选项禁用JavaScript。

在某些情况下,网站仍然会显示数据,但只具有基本功能。

例如,一个网站可以无限滚动。但在禁用JavaScript之后,就会显示常规分页。

Beautiful Soup可以渲染JavaScript吗?

首先答案是不可以。具体来说,我们必须要了解“解析”和“渲染”的含义。解析就是将Python对象的字符串表示转换为实际对象。而渲染本质上是将HTML、JavaScript、层叠样式表(CSS)和图像解释成我们在浏览器中看到的东西。Beautiful Soup是一个用于从HTML文件中提取数据的Python库。这包括将HTML字符串解析为Beautiful Soup对象。解析时,我们首先需要HTML字符串。动态网站不会直接将数据保存在HTML中。因而,Beautiful Soup不能用于动态网站。

那么如何从动态网站中抓取数据?

Selenium库可以在Google Chrome或Firefox等浏览器中自动加载和渲染网站。尽管Selenium支持从HTML中提取数据,但也可以提取完整的HTML,并使用Beautiful Soup来代替提取数据。如想继续了解,可通过Oxylabs获得更多多详细信息

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档