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

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

作者头像
数据科学工厂
发布2024-04-28 12:26:37
发布2024-04-28 12:26:37
12400
代码可运行
举报
运行总次数:0
代码可运行

Beautiful Soup

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

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

代码语言:javascript
代码运行次数:0
复制
from bs4 import BeautifulSoup

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

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

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

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

print(name)

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

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

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

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

print(price)

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

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

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

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

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

代码语言:javascript
代码运行次数:0
复制
>>> 4.9 out of 5 stars

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

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

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

代码语言:javascript
代码运行次数:0
复制
>>> 4.9

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

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Beautiful Soup
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档