IT教育在线职业教育领导品牌,专注设计与IT人才培训
IT培训网 IT知识库 大学生招聘网
首页 培训就业 教学保障 教学模式 师资力量 IT知识库 专题活动 关于我们

python之urllib.urlopen

2018-02-08 15:14:11 来源:泛艺学苑

距活动结束时间仅剩8

  无压力学习

python之urllib.urlopen


Urllib.urlopen

#Urllib.urlopen

打开一个远程的http连接,然后可以对这个参数进行读取

1.urllib.urlopen

1)Url:scheme(http:/file:)指定远程的服务器地址,当然它也支持本地的软件读取

2)data:如果有,变成POST方法,也就是对服务器POST数据,当然这个POST比较简单,数据格式必须是application/X-www-form-urlencoded,就是类似于在登录的时候输入用户名密码这种。

3)返回类文件句柄

2.类文件句柄的常用方法

1)read(size)size=-1/None 读字节

2)readline()读一行

3)readlines()所有的行都会读出来,它返回的是一个链表

4)close()把这个文件给关闭掉

5)getcode()返回http请求的应答码200,2xx就是正确的应答码

示例:

开发环境:

urllib1.png

创建项目urllib-demo

# -*- coding: utf-8 -*-

import urllib //导入

def demo(): //定义一个demo函数

s = urllib.urlopen('http://blog.kamidox.com') //打开一个urllib

Print(s.read(100)) //读100字节

if __name__ == '__main__': //定义name

Demo()

运行结果,输出了100字节。

urllib2.png

当然你也可以不提供参数,代码如下:

# -*- coding: utf-8 -*-

import urllib //导入

def demo(): //定义一个demo函数

s = urllib.urlopen('http://blog.kamidox.com') //打开一个urllib

Print(s.read()) //读所有的字节

if __name__ == '__main__': //定义name

Demo()

运行结果,输出了所有的字节

urllib3.png

打印一行数据。代码如下:

# -*- coding: utf-8 -*-

import urllib //导入

def demo(): //定义一个demo函数

s = urllib.urlopen('http://blog.kamidox.com') //打开一个urllib

Print(s.readline()) //打印一行数据

if __name__ == '__main__': //定义name

Demo()

运行结果,打印了一行数据

urllib4.png

打印10行,代码如下:

# -*- coding: utf-8 -*-

import urllib //导入

def demo(): //定义一个demo函数

s = urllib.urlopen('http://blog.kamidox.com') //打开一个urllib

for i in range(10)

Print(‘line %d: %s’ %(i+1,s.readline())) //打印10行数据,把行号还有行的内容打出来

if __name__ == '__main__': //定义name

Demo()

运行结果

urllib5.png

再看看readlines,代码如下:

# -*- coding: utf-8 -*-

import urllib //导入

def demo(): //定义一个demo函数

s = urllib.urlopen('http://blog.kamidox.com') //打开一个urllib

lines = s.readlines() //readlines会返回所有行的列表

print(lines)

if __name__ == '__main__': //定义name

Demo()

运行结果,大家可以看到这是个列表,但是这样打出来很难看,我们可以修改一下

urllib6.png

修改后代码如下:

# -*- coding: utf-8 -*-

import urllib

def print_list(list): //定义一个print_list函数,它的参数是一个链表

for i in list:

print(i) //逐行给它打印出来

def demo():

s = urllib.urlopen('http://blog.kamidox.com') //打开一个urllib

lines = s.readlines() //readlines会返回所有行的列表

print_list(lines) //使用list来打印整个数据

if __name__ == '__main__':

demo()

运行结果,可以看到是逐行打印出来

urllib7.png

返回应答码,代码如下:

# -*- coding: utf-8 -*-

import urllib

def print_list(list): //定义一个print_list函数,它的参数是一个链表

for i in list:

print(i) //逐行给它打印出来

def demo():

s = urllib.urlopen('http://blog.kamidox.com') //打开一个urllib

print(s.getcode()) //返回应答码

if __name__ == '__main__':

demo()

运行结果,200,成功

urllib8.png

那如果我们获取一个不存在的url,代码如下:

# -*- coding: utf-8 -*-

import urllib

def print_list(list): //定义一个print_list函数,它的参数是一个链表

for i in list:

print(i) //逐行给它打印出来

def demo():

s = urllib.urlopen('http://blog.kamidox.com/no-exist') //打开一个不存在的urllib

print(s.getcode()) //返回应答码

if __name__ == '__main__':

demo()

运行结果,404,找不到这个协议

urllib9.png

如果我们没有协议,就把它变成一个字符串,代码如下:

# -*- coding: utf-8 -*-

import urllib

def print_list(list): //定义一个print_list函数,它的参数是一个链表

for i in list:

print(i) //逐行给它打印出来

def demo():

s = urllib.urlopen('blog.kamidox.com/no-exist') //打开一个不存在的urllib,没有协议

print(s.getcode()) //返回应答码

if __name__ == '__main__':

demo()

运行结果如下,它把这个字符串当成了一个本地的文件,所以这个协议一定要写,这个表示从什么原材料去获取这个资源

urllib10.png

【本文由IT教育独家原创,转载请注明出处并保留原文链接】

免责声明:本文来源于网络,由网友提供或网络搜集,仅供个人交流学习参考使用,不涉及商业盈利目的。如有版权问题,请联系本站管理员予以更改或删除。谢谢合作!

相关阅读

热门标签: python之urllib urlopen

大家都在看

大数据培训机构 UI培训哪家好

互联网资讯

开班时间

推荐阅读