python网页数据抓取( 网页信息提取的方式从网页中提取信息有一些方法? )
优采云 发布时间: 2021-10-20 15:08python网页数据抓取(
网页信息提取的方式从网页中提取信息有一些方法?
)
关于转载授权
编译|丁雪黄年程序笔记|席雄芬校对|姚嘉玲
介绍
从网页中提取信息的需求正在迅速增加,其重要性也越来越明显。每隔几周,我自己就想从网页中提取一些信息。例如,上周我们考虑建立各种在线数据科学课程的受欢迎程度和意见的索引。我们不仅需要寻找新的课程,还要抓取课程的评论,总结并建立一些指标。这是一个问题或产品,它的功效更多地取决于网络抓取和信息提取(数据集)技术,而不是我们过去使用的数据聚合技术。
从网页中提取信息的方法
有多种方法可以从网页中提取信息。使用 API 可能被认为是从 网站 中提取信息的最佳方式。几乎所有的大型网站,如Twitter、Facebook、Google、Twitter、StackOverflow,都提供了API,以更加结构化的方式访问网站数据。如果可以通过API直接获取所需信息,那么这种方式几乎总是比网络爬取方式要好。因为如果你可以从数据提供者那里得到结构化的数据,那为什么还要构建自己的引擎来提取相同的数据呢?
不幸的是,并非所有 网站 都提供 API。一些网站不愿意让读者以结构化的方式抓取大量信息,一些网站由于缺乏相关技术知识而无法提供API。遇到这种情况我该怎么办?那么,我们需要通过网络爬虫来获取数据。
当然还有一些其他的方式,比如RSS订阅,但是由于使用限制,这里就不展开讨论了。
什么是网络爬虫?
网页抓取是一种从网站获取信息的计算机软件技术。该技术主要专注于将网络上的非结构化数据(HTML 格式)转换为结构化数据(数据库或电子表格)。
网络爬虫可以通过不同的方式实现,包括从 Google Docs 到几乎所有的编程语言。由于 Python 的易用性和丰富的生态系统,我会选择使用 Python。Python 中的 BeautifulSoup 库可以协助完成这项任务。在本文中,我将使用 Python 编程语言向您展示学习网络爬虫的最简单方法。
对于需要通过非编程方式从网页中提取数据的读者,可以去import.io看看。有基于图形用户界面的基本操作来运行网页抓取。电脑迷可以继续看这篇文章!
网络爬虫所需的库
我们都知道 Python 是一种开源编程语言。您可能会找到许多库来实现一个功能。因此,有必要找到最好的库。我倾向于使用 BeautifulSoup(Python 库),因为它使用起来简单直观。准确地说,我将使用两个 Python 模块来抓取数据:
· Urllib2:它是一个用于获取URL 的Python 模块。它定义了实现 URL 操作(基本、摘要式身份验证、重定向、cookie 等)的函数和类。有关更多详细信息,请参阅文档页面。
· BeautifulSoup:它是一种用于从网页中提取信息的神奇工具。您可以使用它从网页中提取表格、列表和段落,还可以添加过滤器。在本文中,我们将使用最新版本 BeautifulSoup 4。您可以在其文档页面查看安装指南。
BeautifulSoup 并不能帮助我们获取网页,这就是我将 urllib2 和 BeautifulSoup 库一起使用的原因。除了 BeautifulSoup,Python 还有其他的 HTML 抓取方法。喜欢:
·机械化
·刮痕
·Scrapy
基础 - 熟悉 HTML(标签)
在做网页爬虫的时候,我们需要处理html标签。因此,我们首先要了解标签。如果您已经了解 HTML 的基础知识,则可以跳过本节。以下是 HTML 的基本语法:
语法的各个标签的解释如下:
1.:html文档必须以类型声明开头
2.html文档写在and标签之间
3.html文档的可见部分写在and标签之间
4.html 标头使用
标签定义
5.html 段落用法
标签定义
其他有用的 HTML 标签是:
1.html 链接使用标签定义,“这是一个测试”
2.html表用法定义,行用法的意思,行用法的第二个元素在标签中,不在
分成数据
3.html 列表
)
如上图,你会注意到
标签内。因此,我们需要注意这一点。现在要访问每个元素的值,我们将使用每个元素的“find(text=True)”选项。我们来看一下代码:
最后,我们在dataframe中的数据如下:
同样,您可以使用 BeautifulSoup 来实现各种其他类型的网络爬虫。这将简化从网页手动采集数据的工作。您还可以查看其他属性,例如 .parent、.contents、.descendants 和 .next_sibling、.prev_sibling 以及用于标签名称浏览的各种属性。这些将帮助您有效地抓取网络。
但是为什么我不能只使用正则表达式?
现在,如果您了解正则表达式,您可能会认为可以用它来编写代码来做同样的事情。当然,我也遇到了这个问题。我使用 BeautifulSoup 和正则表达式来做同样的事情,发现:
BeautifulSoup 中的代码比用正则表达式编写的更强大。用正则表达式编写的代码必须随着页面的变化而变化。虽然在某些情况下需要对 BeautifulSoup 进行调整,但相对而言,BeautifulSoup 更好。
正则表达式比 BeautifulSoup 快很多,同样的结果,正则表达式比 BeautifulSoup 快 100 倍。
因此,归结为速度和代码健壮性的比较,这里没有万能的赢家。如果您要查找的信息可以通过简单的正则表达式语句捕获,那么您应该选择使用它们。对于几乎所有复杂的任务,我通常更推荐使用 BeautifulSoup 而不是正则表达式。
结束语
在本文中,我们使用两个 Python 库,BeautifulSoup 和 urllib2。我们还学习了 HTML 的基础知识,并通过解决一个问题逐步实现了网络爬虫。我建议你练习一下,用它来采集网页数据。
译者简介 丁雪拥有华中师范大学信息科学硕*敏*感*词*。从事用户行为与个性化服务研究。关注大数据发展,想从事互联网、咨询行业相关工作。黄念在上海长海医院攻读硕*敏*感*词*,对生物医学大数据挖掘及其应用非常感兴趣,愿意通过这个平台结识更多的朋友。奚雄芬,北京邮电大学无线信号处理专业*敏*感*词*。主要研究图信号处理。他对基于社交网络的图数据挖掘感兴趣。他希望通过这个平台结识更多从事大数据的人,结识更多志同道合的人。. 家庭主妇姚嘉玲对数据分析处理很感兴趣。她正在努力学习,希望能和大家多交流。