韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > Python爬虫 > Python中的opener()方法是什么

Python中的opener()方法是什么

头像

爱喝马黛茶的安东尼

2019-07-05 13:29:197857浏览 · 0收藏 · 0评论

当我们爬取百度首页的 html时,我们用到的是 urlopen 来打开请求,它是一个特殊的opener(也就是??榘镂颐枪菇ê玫模?。但是基本的 urlopen() 方法不支持代理、cookie等其他的HTTP/HTTPS高级功能,所以我们需要用到 Python 的 opener 来自定义我们的请求内容。

具体步骤:

(1)使用相关的 Handler处理器 来创建特定功能的处理器对象;

(2)然后通过 build_opener()方法使用这些处理器对象,创建自定义opener对象;

(3)使用自定义的opener对象,调用open()方法发送请求。

我们先来回顾一下使用 urlopen 获取百度首页的 html 代码实例:

# 导入urllib 库
import urllib.request

# url 作为Request()方法的参数,构造并返回一个Request对象
request = urllib.request.Request("http://www.baidu.com")
# Request对象作为urlopen()方法的参数,发送给服务器并接收响应
response = urllib.request.urlopen(request)
# 类文件对象支持 文件对象的操作方法,如read()方法读取文件全部内容,返回字符串
html = response.read().decode("utf-8")
# 打印字符串
print(html)

接下来我们看一下使用 opener 的处理方式:

from urllib import request

# 构建一个HTTPHandler 处理器对象,支持处理HTTP请求
http_handler = request.HTTPHandler()

# 构建一个HTTPSHandler 处理器对象,支持处理HTTPS请求
# http_handler = request.HTTPSHandler()

# 调用 request.build_opener()方法,创建支持处理HTTP请求的opener对象
opener = request.build_opener(http_handler)

# 构建 Request请求
request = request.Request("http://www.baidu.com/")

# 调用自定义opener对象的open()方法,发送request请求
response = opener.open(request)

# 获取服务器响应内容
html = response.read().decode("utf-8")
 
# 打印字符串
print(html)

在上面的第一段代码中,我们是通过直接  import urllib.request   来导入我们需要的包,这样当我们要使用时需要   urllib.request   来使用,第二段代码我们是通过  from urllib import request  来导入我们需要的包,这样当我们使用时直接  request 来使用就可以了。

相关推荐:《Python视频教程

第一段代码在前面的文章中我们已经说过了,这里就不多做解释了。

第二段代码中,我们使用了 opener 的方法来处理我们的请求,这样我们就可以对代理,cookie 等做进一步的操作,后续文章会讲到。最终结果如下:

1562304226390254.jpg

在http_handler = request.HTTPHandler()中,我们还可以添加一个  debuglevel=1 参数,会将Debug Log打开,这样程序在执行的时候,会把收包和发包的报头在屏幕上自动打印出来,方便调试,有时可以省去抓包的工作。

代码如下:

from urllib import request

# 构建一个HTTPHandler 处理器对象,支持处理HTTP请求
http_handler = request.HTTPHandler(debuglevel=1)

# 构建一个HTTPHandler 处理器对象,支持处理HTTPS请求
# http_handler = request.HTTPSHandler(debuglevel=1)

# 调用 request.build_opener()方法,创建支持处理HTTP请求的opener对象
opener = request.build_opener(http_handler)

# 构建 Request请求
request = request.Request("http://www.baidu.com/")

# 调用自定义opener对象的open()方法,发送request请求
response = opener.open(request)

# 获取服务器响应内容
html = response.read().decode("utf-8")

# 打印字符串
print(html)

输出结果如下:

1562304237539837.jpg

可以看出在响应结果的时候会为我们打印输出一些请求信息。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

坤坤寒进桃子里在线看歌词| 十九岁暴躁少女CSGO免费观看| 老师办公室狂肉校花小说| 公交车上荫蒂添的好舒服H漫画| 妈妈在家穿超薄内裤的注意事项| 法国内衣秀| 粗大挺进亲女小雅小滨 | 《高压监狱3》法国版正版 | 十八岁观看免费网名| 性做爰A片春欲| 王叔 我老公还在客厅| 妈妈的职业4免费观看完整版高清| 《乳牛牧场的奶牛娘》动浸| 69精品久久久久久久精品A片 | 《女家教》完整版免费观看| 爸井空电影| 《临时夫妻之孽缘》| 护士PLAY超薄A字约会裙| 坤坤寒进桃子里在线看歌词| 成品人和精品人的区别哪个好| 已满十八岁免费观看电视剧| 四个人换着来免费观看第二季| 漂亮美女| 黏糊糊的你12集免费观看| 拔小萝卜免费观看全集电视剧| 交换的一天电影完整播放在线观看 | 熟母10和熟母10的区别| 三男一女CP免费观看电视剧大全 | 护士小姐| 男人问你舒服吗出于什么心理| 扌暴辶鬲的短文| 7777影院免费观看电视剧大全| 99精产国品一二三产区区别电影| 白日梦我电视剧| 交换朋友的老婆2中字谜给看| 不想和你有遗憾电影在线观看| 成品PPT网站大片入口| 我和两个继拇交换做爰| 美国A片巜禁忌9| 女性INS大片跳舞| 《黏糊糊的你》动浸免费观看