将网络数据导入 Python
将网络数据导入 Python
由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!
将网络数据导入 Python
在你的数据科学家职业生涯中,你会发现自己经常需要处理数据。有时这些数据唾手可得,而有时则需要你自己去寻找和收集数据。
您的数据可以从各种来源收集,但通常情况下,您会从网络上获取这些数据。
现在假设你发现了一个网站,上面有海量数据,你觉得这些数据非常有用。可惜的是,你无法将网站上的内容下载到你的设备上进行分析。
手动从网站收集数据会耗费大量时间。幸运的是,您可以使用一些 Python 包轻松导入这些数据。
使用 urlretrieve 导入数据
urlretrieve从子包导入函数urllib.request。from urllib.request import urlretrieve-
将网站的网址赋值给一个变量——这里以“url”为例。
```url = 'https://google.com'``` -
使用此函数
urlretrieve将此文件保存到本地。向该函数传递两个参数——网站的 URL(已分配给变量“url”)和您希望保存文件的名称。```urlretrieve(url, 'file.txt')``` -
数据现在以文件的形式保存在您的设备上,您可以根据需要进行管理和处理。
使用 urlopen 和 Request 导入数据
要完全理解其工作原理,您需要对 HTTP 请求有一定的了解。不过不用担心,即使您不了解请求,也可以按照以下步骤从网络导入数据。
-
urlopen从Request子包中导入函数urllib.request。```from urllib.request import urlopen, Request``` -
请指定网址。
```url = 'https://google.com'``` -
Request通过调用URL来打包请求。```request = Request(url)``` -
发送请求并接收响应。
```response = urlopen(request)``` -
您的请求返回的是一个对象。要提取 HTML 内容,请调用该响应对象的 read 方法。
```response = response.read()``` -
然后,您可以打印、整理和管理网页内容。
```print(response)```
导入数据请求
接下来,强大的requests软件包就派上用场了。它提供了一种更简便、更推荐的方式来执行与urllib上述相同的导入操作。
-
导入请求包。
```import requests``` -
请指定网址。
```url = 'https://google.com'``` -
对 URL 调用 requests 的 GET 方法。这会打包请求、发送请求并捕获响应。所有操作只需一条命令即可完成。是不是很酷?
```request = requests.get(url)``` -
响应是一个 HTTP 对象。要访问响应的内容,请调用该对象的 text 属性。
```print(request.text)```
请注意,您还可以使用上述软件包执行其他一些操作,例如与 API 交互。但是,就本文而言,我们仅关注如何使用它们从网页导入数据。
太棒了!现在你可以用 Python 轻松地从网络导入数据了。
不过,导入的数据是 HTML 内容,包含 HTML 标签和其他 HTML 属性。因此,它们还不能直接使用或分析。
要使它们可以正常使用,您需要使用名为 BeautifulSoup 的包对它们进行格式化。这将在后续文章中讨论。
在此之前,继续使用这些软件包导入数据,并用 Python 创造奇迹吧。
文章来源:https://dev.to/olayinkaatobiloye/importing-data-from-the-web-into-python-3h0n