使用Python进行网页採集:循序渐进指南

从网站提取数据的需求正在增加。当我们进行数据相关项目,如价格监控,业务分析或新闻聚合器时,我们总是需要记录来自网站的数据。但是,逐行複制和粘贴数据已经过时。在本文中,我们将教你如何成为从网站中提取数据的“内部人员”,即使用python进行网页抓取。

 

第0步:简介

Web抓取技术可以帮助我们将HTML非结构化数据转换为电子表格或数据库中的结构化数据。除了使用python编写代码之外,使用API​​访问网站数据或使用Octoparse等数据提取工具也是网页抓取的其他选择。

对于像Airbnb或Twitter这样的大型网站,他们会为开发人员提供API来访问他们的数据。 API代表应用程序编程接口,它是两个应用程序相互通信的访问。对于大多数人来说,API是获取网站自身提供的数据的最佳方法。

但是,大多数网站没有API服务。有时即使他们提供API,您可能获得的数据也不是您想要的。因此,编写python脚本来构建Web爬虫是另一个强大而灵活的解决方案。

那么我们为什么要使用python而不是其他语言呢?

灵活性:众所周知,网站更新迅速。不仅内容而且网络结构都会经常变化。 Python是一种易于使用的语言,因为它具有动态可输入性和高效性。因此,人们可以轻鬆地更改代码并跟上Web更新的速度。
功能强大:Python拥有大量成熟的库。例如,requests,beautifulsoup4可以帮助我们获取URL并从网页中提取信息。 Selenium可以通过让网络抓取工具模仿人类浏览行为来帮助我们避免一些反刮技术。此外,re,numpy和pandas可以帮助我们清理和处理数据。
 

现在让我们开始使用Python进行网络抓取之旅!

第1步:导入Python库

在本教程中,我们将向您展示如何从Yelp中删除评论。 我们将使用两个库:bs4中的BeautifulSoup和urllib中的请求。 这两个库通常用于使用Python构建Web爬网程序。 第一步是在Python中导入这两个库,以便我们可以使用这些库中的函数。

导入库

第2步:从网页中提取HTML

我们需要从“https://www.yelp.com/biz/milk-and-cream-cereal-bar-new-york?osq=Ice+Cream”中提取评论。 首先,让我们将URL保存在名为URL的变量中。 然后我们可以访问此网页上的内容,并通过在请求中使用urlopen()函数将HTML保存在“ourUrl”中。

请求网址

然后我们应用BeautifulSoup来解析页面。

beautifulsoup

现在我们有了“汤”,这是本网站的原始HTML,我们可以使用一个名为prettify()的函数来清理原始数据并打印它以在“汤”中查看HTML的嵌套结构。

美化

第3步:找到并抓取评论

接下来,我们应该在此网页上找到HTML评论,提取并存储它们。 对于网页中的每个元素,它们始终具有唯一的HTML“ID”。 要检查他们的ID,我们需要在网页上检查它们。

检查元素

点击“Inspect element”(或“Inspect”,取决于不同的浏览器)后,我们可以看到评论的HTML。

节点

在这种情况下,评论位于名为“p”的标籤下。 因此,我们将首先使用名为find_all()的函数来查找这些评论的父节点。 然后在循环中的父节点下找到标记为“p”的所有元素。 找到所有“p”元素后,我们将它们存储在一个名为“review”的空列表中。

评论
 

现在我们从该页面获得所有评论。 让我们看看我们提取了多少评论。

len审查

第4步:清理评论

您必须注意到,在每次审核开始时仍有一些无用的文本,例如“”,评论中间的“”和“</ p>”每次审查结束。

“”代表单线休息。我们在评论中不需要任何换行符,因此我们需要删除它们。此外,“”和“</ p>”是HTML的开头和结尾,我们还需要删除它们。

基本乾净的数据

 

最后,我们用少于20行的代码成功地获得了所有乾净的评论。

这里只是一个来自Yelp的20条评论的演示。但在实际情况下,我们可能需要面对很多其他情况。例如,我们需要像分页这样的步骤转到其他页面并提取该商店的其余评论。或者我们还需要删除其他信息,如评论者姓名,评论者位置,评论时间,评级,登记......

要实现上述操作并获取更多数据,我们需要学习更多函数和库,例如selenium或正则表达式。花更多的时间在网络抓取中应对挑战将会很有趣。

但是,如果您正在寻找一些简单的网页抓取方法,Octoparse可能是您的解决方案。 Octoparse是一个功能强大的网络抓取工具,可以帮助您轻鬆地从网站获取信息。查看本教程,了解如何使用Octoparse从Yelp中获取评论。当您需要为您的业务或项目提供强大的网络抓取工具时,请随时与我们联繫!

 

作者:Jiahao WU

文章来源:https://www.octoparse.com/blog/web-scraping-using-python?datacamp?ithelp


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章