使用Python的urllib.request模块访问互联网
介绍
我们使用Python中的**urllib.request**模块来访问和打开URL,这些URL通常使用HTTP协议。
该接口对于初学者来说也非常简单易用;它使用**urlopen**函数,可以使用各种不同的协议获取各种URL。
当我们开始使用它的各种功能时,您将更好地理解我们正在处理的内容。那么,让我们开始吧。
开始
**urllib**库与Python一起打包提供。因此,您无需单独安装它,但如果您想将其添加到您的环境中并且您还没有它,您可以使用pip包管理器安装它。
启动您的终端并使用以下代码:
pip install urllib
安装完成后,您可以导入正确的模块并开始编写您的脚本。
查看urllib.request
我们最常使用urllib.request来打开和读取数据或页面的源代码。如果您尝试从API检索数据,这将特别有用。例如:
import urllib.request
request_url = urllib.request.urlopen('https://official−joke−api.appspot.com/random_ten')以上代码行将打开笑话API并读取其数据。
假设您想打印其内容,您可以使用:
print(request_url.read())
**注意** - 这将以字节格式打印出值。如果您想要纯文本,请使用decode函数。
print(request_url.read().decode())
您甚至可以保存来自API的数据,然后稍后使用正则表达式解析它以仅获取必要的数据。
示例
import urllib.request
data = urllib.request.urlopen('https://official−joke−api.appspot.com/random_ten')
data = data.read().decode()
print(data)
file = open("content.txt", "w+")
file.write(data)
file.close()**注意** -您可以访问使用各种协议的URL,包括FTP、HTTPS等。**urlopen**函数对所有不同的协议的工作方式完全相同。
向URL发送数据
如果您正在使用公共网关接口,您可能希望向URL发送数据。这与HTTP发送POST请求的方式类似。
您可以使用urllib.request和urllib.parse模块来实现此目的。
让我们首先导入模块。
示例
import urllib.parse
import urllib.request
url = 'http://www.google.com/cgi-bin/register.cgi'
values = {'name' : 'S Vijay Balaji', language' : 'Python' }
data = urllib.parse.urlencode(values)
data = data.encode('ascii')
req = urllib.request.Request(url, data)
with urllib.request.urlopen(req) as response:
the_page = response.read()这应该打印出从提供的URL获取的源代码。
结论
urllib.request模块非常有用,因为我们可以检索互联网资源并从中获取数据。
在从API解析数据或读取网页源代码以抓取其内容时,它非常方便。
使用urllib.request从各种API提取数据的项目 - https://github.com/SVijayB/Steam_WebScraper。
urllib.request模块还有许多其他函数。如果您好奇并想了解更多信息,您可以查看其官方文档 - https://docs.pythonlang.cn/3/library/urllib.request.html。
数据结构
网络
关系型数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP