软件研发

如何使用Python进行Web爬网?

2020-09-10 17:12:27 | 来源:中培企业IT培训网

作为数据科学家,收集数据的最有效方法之一是借助Web抓取。网页抓取是一种将数据从Web捕获到我们本地计算机中的技术,以对它执行某些数据分析或数据可视化操作,以从该数据中获得有用的见解,也称为Web收集或数据提取。在本文中,将借助于两个名为Requests和bs4(Beautiful Soup)的金色库来抓取网络上的信息。选择这两个库的原因是它们比其他可用库更强大和灵活。

先决条件

HTML标签和CSS选择器的基础知识是必需的。

从Web捕获数据始于向Web发送请求要从哪个网站捕获数据。该任务是在“请求”模块的帮助下完成的。

要向网站提出请求,首先我们需要在python中导入请求模块。它不是python中的预内置模块。我们需要在pip的帮助下安装该软件包。

>>>导入请求#模块成功导入。

#提出要求

>>>响应= request.get

#响应变量将包含该请求对象的响应。

要检查请求对象的状态,我们需要在请求模块中使用status_code属性。

>>> response.status_code

如果状态代码值的结果为200,则您从网站获得了成功的响应。否则,您将从网页中得到不好的响应。问题可能出在Web URL或服务器问题上。

  请求类型

借助请求模块,主要有六种类型的请求是可能的。

1. get()请求

2. post()请求

3. put()请求

4. 删除请求

5. head()请求

6. options()请求

向网页发出任何形式的请求的语法是-

requests.methodName('url')

但是,最流行的向网页发出请求的方法仅使用get()和post()方法。

要发送任何类型的敏感数据以及诸如登录凭据等URL之类的URL,则post()请求是更可取的,因为HTTP get()请求不会为已发送到网页的请求提供任何安全性。

R = requests.post

回应结果

我们的请求的响应内容是通过text属性获得的。

>>> response.text

由此可以得出结论,我们将网页内容下载到了本地计算机上。为了使内容更加灵活和有用,我们需要借助Beautiful Soup库。该库可帮助我们从可用数据中获得有用的见解。

#导入漂亮的汤库

>>> import bs4

为了使原始HTML数据更加美观,我们需要在某些解析器的帮助下解析内容。经常使用的解析器是-

1. xml文件

2. HTML5lib

3. XML解析器

4. HTML.parser

但是最灵活和最受欢迎的是lxml解析器。它可以非常快速有效地解析数据。

>>> soup_obj = bs4.BeautifulSoup(response.text,'lxml')

#soup_obj将使我们获取所需的结果

#为了使我们之前的数据更容易理解,我们将在汤匙上使用prettify()

>>> soup_obj.prettify()

因此,最后,我们又向前迈了一步。数据提取从此处开始-

要提取网页的名称,我们需要使用选择器以及适当的HTML标签来获得结果

>>> soup_obj.select('title')[0] .getText()

要从该网页提取所有链接,您需要找到该页面中的所有锚标记并将结果存储到变量中。借助for循环迭代,它完全可以打印结果

>>> links = soup_obj.find_all('a')

#find_all()将有助于获取所选标签的所有详细信息。

>>>对于链接中的链接:

... print(link.get('href'))

...

#get()用于从标记中提取特定内容

这是一个从网页获取链接的简单示例。如果您想从网页中提取其他数据,请选择与您的内容相关的适当标签,并在汤对象的帮助下获取结果。最初,这感觉很困难,但是当您在使用它时,绝对可以在一分钟内爬出任何类型的网站。

  免责声明

未经管理员许可,请勿执行网站网页抓取。可能导致非法活动。公司中的数据科学家通常会在自己的网页和业务上进行网络抓取,而他们并未在其他公司网站上执行任何非法操作。所以要小心如果有任何原因造成您损坏,如果发生违法活动概不负责。

我在本教程中使用的网页可以随意刮取,因此完全没有问题。使用此类网站来学习或提高您的技能。

通过上述介绍,如何使用Python进行Web爬网相信大家已经清楚了吧,想了解更多关于Python的信息,请继续关注中培伟业。

标签: Python Web爬网