urllib基本使用-Handler和自定义的opener()
生活随笔
收集整理的這篇文章主要介紹了
urllib基本使用-Handler和自定义的opener()
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
""" 基本的urlopen()方法不支持代理、cookie等其他的HTTP/HTTPS高級(jí)功能。所以要支持這些功能:
使用相關(guān)的 Handler處理器 來創(chuàng)建特定功能的處理器對(duì)象;
然后通過 urllib.requestbuild_opener()方法使用這些處理器對(duì)象,創(chuàng)建自定義opener對(duì)象;
使用自定義的opener對(duì)象,調(diào)用open()方法發(fā)送請(qǐng)求。 如果程序里所有的請(qǐng)求都使用自定義的opener,
可以使用urllib2.install_opener() 將自定義的 opener 對(duì)象 定義為 全局opener,
表示如果之后凡是調(diào)用urlopen,都將使用這個(gè)opener(根據(jù)自己的需求來選擇)
"""
import urllib.request
# 構(gòu)建一個(gè)HTTPHandler 處理器對(duì)象,支持處理HTTP請(qǐng)求
http_handler = urllib.request.HTTPHandler()
# 構(gòu)建一個(gè)HTTPHandler 處理器對(duì)象,支持處理HTTPS請(qǐng)求
#http_handler = urllib.request.HTTPSHandler()
# 構(gòu)建一個(gè)HTTPHandler 處理器對(duì)象,支持處理HTTP請(qǐng)求,同時(shí)開啟Debug Log,debuglevel 值默認(rèn) 0
http_handler = urllib.request.HTTPHandler(debuglevel=1)
# 調(diào)用urllib.request.build_opener()方法,創(chuàng)建支持處理HTTP請(qǐng)求的opener 對(duì)象
opener = urllib.request.build_opener(http_handler)
# 構(gòu)建Request請(qǐng)求
request = urllib.request.Request('http://www.baidu.com/')
# 調(diào)用自定義opener對(duì)象的open()方法,發(fā)送request請(qǐng)求
response = opener.open(request)
print(response.read().decode('utf-8'))
使用相關(guān)的 Handler處理器 來創(chuàng)建特定功能的處理器對(duì)象;
然后通過 urllib.requestbuild_opener()方法使用這些處理器對(duì)象,創(chuàng)建自定義opener對(duì)象;
使用自定義的opener對(duì)象,調(diào)用open()方法發(fā)送請(qǐng)求。 如果程序里所有的請(qǐng)求都使用自定義的opener,
可以使用urllib2.install_opener() 將自定義的 opener 對(duì)象 定義為 全局opener,
表示如果之后凡是調(diào)用urlopen,都將使用這個(gè)opener(根據(jù)自己的需求來選擇)
"""
import urllib.request
# 構(gòu)建一個(gè)HTTPHandler 處理器對(duì)象,支持處理HTTP請(qǐng)求
http_handler = urllib.request.HTTPHandler()
# 構(gòu)建一個(gè)HTTPHandler 處理器對(duì)象,支持處理HTTPS請(qǐng)求
#http_handler = urllib.request.HTTPSHandler()
# 構(gòu)建一個(gè)HTTPHandler 處理器對(duì)象,支持處理HTTP請(qǐng)求,同時(shí)開啟Debug Log,debuglevel 值默認(rèn) 0
http_handler = urllib.request.HTTPHandler(debuglevel=1)
# 調(diào)用urllib.request.build_opener()方法,創(chuàng)建支持處理HTTP請(qǐng)求的opener 對(duì)象
opener = urllib.request.build_opener(http_handler)
# 構(gòu)建Request請(qǐng)求
request = urllib.request.Request('http://www.baidu.com/')
# 調(diào)用自定義opener對(duì)象的open()方法,發(fā)送request請(qǐng)求
response = opener.open(request)
print(response.read().decode('utf-8'))
轉(zhuǎn)載于:https://www.cnblogs.com/AndyChen2015/p/7418280.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的urllib基本使用-Handler和自定义的opener()的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 建设信用卡多久提额
- 下一篇: 关于现代软件工程学习