python3中的urllib.request.urlopen()
urllib.request模块提供了最基本的构造HTTP请求的方法,利用它可以模拟浏览器的一个请求发起过程,同时它还带有处理授权验证(authenticaton)、重定向(redirection)、浏览器Cookies以及其他内容。
简单例子:
import urllib.requestresponse = urllib.request.urlopen('https://www.python.org')
print(response.read().decode('utf-8'))
其中的response是一个HTTPResposne类型的对象。
它主要包含read()、readinto()、getheader(name)、getheaders()、fileno()等方法
以及msg、version、status、reason、debuglevel、closed等属性。
例如,调用read()方法可以得到返回的网页内容,调用getheaders()方法获取响应的头信息,调用status属性可以得到返回结果的状态码,如200代表请求成功,404代表网页未找到等。
例:
import urllib.requestresponse = urllib.request.urlopen('https://www.python.org')
print(response.status)
print(response.getheaders())
print(response.read())
urlopen()函数的API:
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None,
cadefault=False, context=None)
可以发现,除了第一个参数可以传递URL之外,我们还可以传递其他内容,比如data(附加数据)、timeout(超时时间)等。
data参数
data参数是可选的。如果要添加该参数,并且如果它是字节流编码格式的内容,即bytes类型,则需要通过bytes()方法转化。另外,如果传递了这个参数,则它的请求方式就不再是GET方式,而是POST方式。
例子:
import urllib.parse
import urllib.requestdata = bytes(urllib.parse.urlencode({'word': 'hello'}), encoding='utf8')
response = urllib.request.urlopen('http://httpbin.org/post', data=data)
print(response.read())
这里我们传递了一个参数word,值是hello。它需要被转码成bytes(字节流)类型。其中转字节流采用了bytes()方法,该方法的第一个参数需要是str(字符串)类型,需要用urllib.parse模块里的urlencode()方法来将参数字典转化为字符串;第二个参数指定编码格式,这里指定为utf8。
这里请求的站点是httpbin.org,它可以提供HTTP请求测试。本次我们请求的URL为http://httpbin.org/post,这个链接可以用来测试POST请求,它可以输出请求的一些信息,其中包含我们传递的data参数。
运行结果如下:
{"args": {},"data": "","files": {},"form": {"word": "hello"},"headers": {"Accept-Encoding": "identity","Content-Length": "10","Content-Type": "application/x-www-form-urlencoded","Host": "httpbin.org","User-Agent": "Python-urllib/3.5"},"json": null,"origin": "123.124.23.253","url": "http://httpbin.org/post"
}
我们传递的参数出现在了form字段中,这表明是模拟了表单提交的方式,以POST方式传输数据。
python3中的urllib.request.urlopen()相关推荐
- Python3中的urllib.request模块
Python 3.x版本后的urllib和urllib2 现在的Python已经出到了3.5.2 在Python 3以后的版本中,urllib2这个模块已经不单独存在(也就是说当你import url ...
- urllib.request.urlopen详解
视频链接https://www.bilibili.com/video/BV1Us41177P1?p=2 requests.get详解见:https://blog.csdn.net/qq_4184582 ...
- iis设置导致python调用urllib.request.urlopen出错问题
iis确实用的很少,从来没有注意过,今天就遇见了问题. python中使用urllib.request.urlopen调用测试服务器接口,之前从没有出现问题,今天用了一条70M的数据进行测试,突然报错 ...
- (转)python3 urllib.request.urlopen() 错误UnicodeEncodeError: 'ascii' codec can't encode characters...
代码内容: url = 'https://movie.douban.com/j/search_subjects?type=movie'+ str(tag) + '&sort=recommend ...
- Python3 urllib.request.urlopen()API使用
文章目录 urllib库的基本使用---request模块 请求网页-urllib.request.urlopen() 参考资料 urllib库的基本使用-request模块 本文代码基本来源于Pyt ...
- 5、urllib.request.urlopen()
5.urllib.request.urlopen() 官方文档链接:https://docs.python.org/3/library/urllib.request.html urllib.reque ...
- Python中的urllib.request模块
版权声明:本文为Jurbo原创文章,转载请加上链接和作者名,标明出处. https://blog.csdn.net/Jurbo/article/details/52313636 因为在玩Python ...
- urllib.request.urlopen(req).read().decode解析http报文报“‘utf-8‘ codec can‘t decode”错处理
urllib.request.urlopen(req).read().decode解析http报文报"'utf-8' codec can't decode"错处理:https:// ...
- python urllib3 request 无返回结果_python urllib request urlopen请求网页返回bytes类型
首次调用read()时有返回,之后的调用一直返回b'' >>> f = request.urlopen('http://www.baidu.com/') >>> f ...
最新文章
- 看到这些代码,我自叹不如!!!
- exe一机一码加密工具_Python代码加密混淆
- Android深度探索(卷1)HAL与驱动开发 第四章 源代码的下载和编译 读书笔记
- A winner is a dreamer who never gives up
- oracle存储日志
- ESP8266在Alios-Things上的入门开发指南 (一)开发环境搭建及HelloWorld固件
- ios 代码设置控件宽高比_iOS--利用比例纯代码适配屏幕大小
- python tkinter下载器_下载小说还要去找网站?Python使用tkinter打造一个小说下载器...
- python如何爬虫eps数据_入门Python爬虫 -- 解析数据篇
- 在Ubuntu中搭建.NET开发环境
- 如何用ssh工具连接自己的“小米手机”——雷总看了直呼内行!!!
- TensorFlow教程之API DOC 6.3.10. NN
- LeetCode【1051. 高度检查器】
- Java编写简单的爱心
- EVO工具在EUROC数据集TUM数据集,评测ORB-SLAM3和VINS-MONO
- 购买计算机设备计入什么科目,企业购买设备计入什么会计科目?附会计分录
- 3D测量| 主动模式投影提高AOI三维测量精度
- 【Unity】Mesh网格编程(四)麦比乌斯环
- 怎么让计算机响音乐,如何让电脑声音更大一点
- Bia布刷题日记 LC-15 三数之和
热门文章
- 使用predix-cli来简化cf-cli操作
- 最老程序员创业开发实训---30+程序员的希望
- favicon.ico网站图标不显示
- 【Java报错找不到指定文件】Exception in thread “main“ java.io.FileNotFoundException:...... (系统找不到指定的文件。)
- Win10官方1909版本无法打开windows安全中心中病毒和威胁防护的实时保护解决方案。
- html图片自动循环,css实现图片循环的动画效果(代码)
- moveTo与moveBy的区别
- flow工作流java_Java工作流引擎jflow对流程的结束大总结
- 【模拟】【DFS】【递归】阿里郎
- 《机甲战士5》如何让该游戏系列焕然一新