加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Python进修:urllib 说明

发布时间:2021-05-30 02:05:59 所属栏目:教程 来源:互联网
导读:接下来我们会分隔接头除了 urllib.error 以外的几部门。官方文档现实保举你实行第三方库, requests,一个高级的 HTTP 客户端接口。然而我依然以为知道怎样不依
副问题[/!--empirenews.page--]

接下来我们会分隔接头除了 urllib.error 以外的几部门。官方文档现实保举你实行第三方库, requests,一个高级的 HTTP 客户端接口。然而我依然以为知道怎样不依靠第三方库打开 URL 并与之举办交互是很有效的,并且这也可以辅佐你领略为什么 requests 包是云云的风行。

urllib.request

urllib.request 模块期初是用来打开和获取 URL 的。让我们看看你可以用函数 urlopen 可以做的事:

>>> import urllib.request 

>>> url = urllib.request.urlopen('https://www.google.com/') 

>>> url.geturl() 

'https://www.google.com/' 

>>> url.info() 

<http.client.HTTPMessage object at 0x7fddc2de04e0> 

>>> header = url.info() 

>>> header.as_string() 

('Date: Fri, 24 Jun 2016 18:21:19 GMTn' 

 'Expires: -1n' 

 'Cache-Control: private, max-age=0n' 

 'Content-Type: text/html; charset=ISO-8859-1n' 

 'P3P: CP="This is not a P3P policy! See ' 

 'https://www.google.com/support/accounts/answer/151657?hl=en for more info."n' 

 'Server: gwsn' 

 'X-XSS-Protection: 1; mode=blockn' 

 'X-Frame-Options: SAMEORIGINn' 

 'Set-Cookie: ' 

 'NID=80=tYjmy0JY6flsSVj7DPSSZNOuqdvqKfKHDcHsPIGu3xFv41LvH_Jg6LrUsDgkPrtM2hmZ3j9V76pS4K_cBg7pdwueMQfr0DFzw33SwpGex5qzLkXUvUVPfe9g699Qz4cx9ipcbU3HKwrRYA; ' 

 'expires=Sat, 24-Dec-2016 18:21:19 GMT; path=/; domain=.google.com; HttpOnlyn' 

 'Alternate-Protocol: 443:quicn' 

 'Alt-Svc: quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"n' 

 'Accept-Ranges: nonen' 

 'Vary: Accept-Encodingn' 

 'Connection: closen' 

 'n') 

>>> url.getcode() 

200 

在这里我们包括了必要的模块,然后汇报它打开 Google 的 URL。此刻我们就有了一个可以交互的 HTTPResponse 工具。我们要做的***件事是挪用要领 geturl ,它会返回按照 URL 获取的资源。这可以让我们发明 URL 是否举办了重定向。

接下来挪用 info ,它会返回网页的元数据,好比哀求头信息。因此,我们可以将功效赋给我们的 headers 变量,然后挪用它的要领 as_string 。就可以打印出我们从 Google 收到的头信息。你也可以通过 getcode 获得网页的 HTTP 相应码,当前环境下就是 200,意思是正常事变。

假如你想看看网页的 HTML 代码,你可以挪用变量 url 的要领 read。我禁绝备再现这个进程,由于输出功效太长了。

请留意 request 工具默认提倡 GET 哀求,除非你指定了它的 data 参数。假如你给它转达了 data 参数,这样 request 工具将会酿成 POST 哀求。

下载文件

urllib 一个典范的应用场景是下载文件。让我们看看几种可以完成这个使命的要领:

>>> import urllib.request 

>>> url = '' 

>>> response = urllib.request.urlopen(url) 

>>> data = response.read() 

>>> with open('/home/mike/Desktop/test.zip', 'wb') as fobj: 

...     fobj.write(data) 

... 

这个例子中我们打开一个生涯在我的博客上的 zip 压缩文件的 URL。然后我们读出数据并将数据写到磁盘。一个更换此操纵的方案是行使 urlretrieve :

>>> import urllib.request 

>>> url = '' 

>>> tmp_file, header = urllib.request.urlretrieve(url) 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读