如何抓取网页数据(机器学习项目如何使用BeautifulSoup和Selenium?数据结构机器)
优采云 发布时间: 2022-02-21 21:17如何抓取网页数据(机器学习项目如何使用BeautifulSoup和Selenium?数据结构机器)
不久前在LearnML分论坛上看到一个帖子。楼主在这个贴子里提到,他的机器学习项目需要爬取网页数据。很多人在回复中给出了自己的方法,主要是学习如何使用 BeautifulSoup 和 Selenium。
我在一些数据科学项目中使用过 BeautifulSoup 和 Selenium。在这篇文章 文章 中,我将向您展示如何抓取收录有用数据的网页并将其转换为 pandas DataFrame。
为什么要转换为数据结构?这是因为大多数机器学习库都可以处理 pandas 数据结构,并且您只需进行一些修改即可编辑您的模型。
首先,我们需要在***上找到一个表,并将其转换为数据结构。我抓取的表格显示了 *** 上运动员观看次数最多的数据。
一项伟大的任务是浏览 HTML 树以获取我们需要的表格。
通过 request 和 regex 库,我们开始使用 BeautifulSoup。
复制代码
接下来,我们将从网页中提取 HTML 代码:
复制代码
从语料库中采集所有表格,我们有一个小的表面积要搜索。
复制代码
因为有很多表,我们需要一种过滤它们的方法。
据我们所知,克里斯蒂亚诺·罗纳尔多(又名葡萄牙足球运动员克里斯蒂亚诺·罗纳尔多)的主播可能在几款腕表中独树一帜。
通过C罗文本,我们可以过滤掉锚点标记的表格。此外,我们还发现了一些收录此锚标记的父元素。
复制代码
父元素仅显示单元格。
这是一个带有浏览器的cell***开发工具。
复制代码
使用 tbody,我们可以返回收录先前锚标记的其他表。
为了进一步过滤,我们可以在下表中的不同标题下进行搜索:
复制代码
第三个看起来很像我们需要的手表。
接下来,我们开始创建必要的逻辑来提取和清理我们需要的细节。
复制代码
分解它:
复制代码
让我们从上面的列表中选择第三个元素。这就是我们需要的手表。
接下来,创建一个空列表来存储每一行的详细信息。遍历表时,设置一个循环遍历表中的每一行,并将其保存在 rows 变量中。
复制代码
复制代码
创建嵌套循环。迭代在最后一个循环中保存的每一行。当迭代单元格时,我们将每个单元格保存在一个新变量中。
复制代码
这段简短的代码让我们在从单元格中提取文本时避免出现空单元格并防止错误。
复制代码
在这里,我们将各种单元格清理成纯文本。清除的值保存在其列名下的变量中。
复制代码
在这里,我们将这些值添加到行列表中。然后输出清理后的值。
复制代码
将其转换为以下数据结构:
复制代码
您现在可以在机器学习项目中使用 pandas 数据结构。您可以使用自己喜欢的库来拟合模型数据。
关于作者:
对技术感兴趣的 Topola Bode 目前专注于机器学习。
原文链接:
.dev 天才 .io/how-to-scrape-a-website-for-your-ml-project-C3 a4d 6 f 160 c 7