前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python网络数据抓取(4):Beautiful Soup

Python网络数据抓取(4):Beautiful Soup

作者头像
科学冷冻工厂
发布2024-04-28 12:26:37
790
发布2024-04-28 12:26:37
举报

Beautiful Soup

这个库通常被称为Beautiful Soup 4(BS4)。它主要用来从HTML或XML文件中抓取数据。此外,它也用于查询和修改HTML或XML文档中的数据。

现在,让我们来了解如何使用Beautiful Soup 4。我们将采用上一节中使用的HTML数据作为示例。不过在此之前,我们需要先将这些数据导入到我们的文件中。

代码语言:javascript
复制
from bs4 import BeautifulSoup

从我们的目标页面中,我们将提取一些重要数据,例如名称、价格和产品评级。为了提取数据,我们需要一个解析树。

代码语言:javascript
复制
soup=BeautifulSoup(resp.text, ’html.parser’)

当您检查名称时,您会发现它存储在 a-size-large 类产品标题分词符中。

代码语言:javascript
复制
name = soup.find(“span”,{“class”:”a-size-large product-title-word-break”}).text

print(name)

当我们打印名字时,我们得到了这个。

正如你所看到的,我们得到了产品的名称。现在,我们将提取价格。

通过检查价格,我可以看到价格存储在屏幕外的类中,而该类存储在priceToPay 类中。

代码语言:javascript
复制
price = soup.find(“span”,{“class”:”priceToPay”}).find(“span”,{“class”:”a-offscreen”}).text

print(price)

当我们打印它时,我们得到了这个。

现在,最后一部分是提取产品的评级。

正如您所看到的,评级存储在***a-icon-star***中。

代码语言:javascript
复制
rating = soup.find(“i”,{“class”:”a-icon-star”}).text

所以,当我们打印这个时,我们得到了这个。

代码语言:javascript
复制
>>> 4.9 out of 5 stars

但如果你只需要 4.9 部分,并且想要删除所有多余的文本,那么我们将使用 python 的 split 函数。

代码语言:javascript
复制
rating = soup.find(“i”,{“class”:”a-icon-star”}).text.split(“ “)[0]

这将为我们提供评级部分。

代码语言:javascript
复制
>>> 4.9

我们利用requests库发送GET请求,成功地从第一部分获取的杂乱HTML中提取出了所有必需的数据。

那么,如果你需要将这些数据保存到CSV文件中,又该如何操作呢?这时,我们将调用Pandas库来执行这项工作(下期见)。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-28,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 冷冻工厂 微信公众号,前往查看

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

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Beautiful Soup
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com