国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python3中使用urllib的方法詳解(header,代理,超時,認證,異常處理)

2020-01-04 17:26:23
字體:
來源:轉載
供稿:網友

我們可以利用urllib來抓取遠程的數據進行保存哦,以下是python3 抓取網頁資源的多種方法,有需要的可以參考借鑒。

1、最簡單

import urllib.requestresponse = urllib.request.urlopen('http://python.org/')html = response.read()

2、使用 Request

import urllib.requestreq = urllib.request.Request('http://python.org/')response = urllib.request.urlopen(req)the_page = response.read()

3、發送數據

#! /usr/bin/env python3import urllib.parseimport urllib.requesturl = 'http://localhost/login.php'user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'values = {'act' : 'login','login[email]' : 'yzhang@i9i8.com','login[password]' : '123456'}data = urllib.parse.urlencode(values)req = urllib.request.Request(url, data)req.add_header('Referer', 'http://www.python.org/')response = urllib.request.urlopen(req)the_page = response.read()print(the_page.decode("utf8"))

4、發送數據和header

#! /usr/bin/env python3import urllib.parseimport urllib.requesturl = 'http://localhost/login.php'user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'values = {'act' : 'login','login[email]' : 'yzhang@i9i8.com','login[password]' : '123456'}headers = { 'User-Agent' : user_agent }data = urllib.parse.urlencode(values)req = urllib.request.Request(url, data, headers)response = urllib.request.urlopen(req)the_page = response.read()print(the_page.decode("utf8"))

5、http 錯誤

#! /usr/bin/env python3import urllib.requestreq = urllib.request.Request('http://www.survivalescaperooms.com ')try:urllib.request.urlopen(req)except urllib.error.HTTPError as e:print(e.code)print(e.read().decode("utf8"))

6、異常處理1

#! /usr/bin/env python3from urllib.request import Request, urlopenfrom urllib.error import URLError, HTTPErrorreq = Request("http://www.survivalescaperooms.com /")try:response = urlopen(req)except HTTPError as e:print('The server couldn't fulfill the request.')print('Error code: ', e.code)except URLError as e:print('We failed to reach a server.')print('Reason: ', e.reason)else:print("good!")print(response.read().decode("utf8"))

7、異常處理2

#! /usr/bin/env python3from urllib.request import Request, urlopenfrom urllib.error import URLErrorreq = Request("http://www.survivalescaperooms.com /")try:response = urlopen(req)except URLError as e:if hasattr(e, 'reason'):print('We failed to reach a server.')print('Reason: ', e.reason)elif hasattr(e, 'code'):print('The server couldn't fulfill the request.')print('Error code: ', e.code)else:print("good!")print(response.read().decode("utf8"))

8、HTTP 認證

#! /usr/bin/env python3import urllib.request# create a password managerpassword_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()# Add the username and password.# If we knew the realm, we could use it instead of None.top_level_url = "http://www.survivalescaperooms.com /"password_mgr.add_password(None, top_level_url, 'rekfan', 'xxxxxx')handler = urllib.request.HTTPBasicAuthHandler(password_mgr)# create "opener" (OpenerDirector instance)opener = urllib.request.build_opener(handler)# use the opener to fetch a URLa_url = "http://www.survivalescaperooms.com /"x = opener.open(a_url)print(x.read())# Install the opener.# Now all calls to urllib.request.urlopen use our opener.urllib.request.install_opener(opener)a = urllib.request.urlopen(a_url).read().decode('utf8')print(a)

9、使用代理

#! /usr/bin/env python3import urllib.requestproxy_support = urllib.request.ProxyHandler({'sock5': 'localhost:1080'})opener = urllib.request.build_opener(proxy_support)urllib.request.install_opener(opener)a = urllib.request.urlopen("http://www.survivalescaperooms.com ").read().decode("utf8")print(a)

10、超時

#! /usr/bin/env python3import socketimport urllib.request# timeout in secondstimeout = 2socket.setdefaulttimeout(timeout)# this call to urllib.request.urlopen now uses the default timeout# we have set in the socket modulereq = urllib.request.Request('http://www.survivalescaperooms.com /')a = urllib.request.urlopen(req).read()print(a)

總結

以上就是這篇文章的全部內容,希望本文的內容對大家學習或使用python能有所幫助,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江孜县| 昆明市| 永新县| 阿城市| 化州市| 增城市| 渭南市| 上虞市| 鹰潭市| 弋阳县| 石台县| 合肥市| 玉树县| 滨州市| 碌曲县| 兖州市| 临夏县| 承德县| 澄迈县| 改则县| 绥中县| 湖南省| 娄烦县| 阿克陶县| 肥城市| 平邑县| 凉城县| 隆林| 波密县| 古丈县| 吉林省| 揭东县| 瑞安市| 疏勒县| 东兴市| 普定县| 灵丘县| 兴海县| 宁津县| 化德县| 牙克石市|