Python 3基础教程31-urllib模块

释放双眼,带上耳机,听听看~!

 本文介绍Python里的urllib模块,这个urllib主要处理web服务的,如果需要做接口测试,或者写Python的网络爬虫,这个urllib就是最底层的库。需要用到里面的请求方法等。

  1. 先看看一个不带参数的http 请求


1
2
3
4
5
6
7
8
9
1# urllib模块
2import urllib.request
3
4# 向web服务器发送一个请求,打开百度学术首页
5x = urllib.request.urlopen('http://xueshu.baidu.com/')
6
7# 打印页面源代码
8print(x.read())
9

自己运行下,这里就不贴运行结果

2.再看看带参数的http 请求,这里以新浪天气举例


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
1# urllib模块
2import urllib.request
3import urllib.parse
4
5# 向web服务器发送一个请求,打开百度学术首页
6#x = urllib.request.urlopen('http://xueshu.baidu.com/')
7
8# 打印页面源代码
9#print(x.read())
10
11# 发送一个带参数的请求
12url = 'http://php.weather.sina.com.cn/search.php'
13values = {'city':'北京',
14          'dpc':'1'
15          }
16'''
17city=北京,这个字段需要转码,转成后是%B1%B1%BE%A9
18你可以打开http://php.weather.sina.com.cn,搜索北京看看是不是这个转码
19这个转码过程就叫encode
20'''
21data = urllib.parse.urlencode(values)
22# 参数的编码格式是Unicode,这里用utf-8,最适合网络传输的编码协议
23data = data.encode('utf-8')
24# 调用一个有url和参数的请求,通过Request(url,data)
25req = urllib.request.Request(url,data)
26# 打开这个请求,通过urlopen函数
27resq = urllib.request.urlopen(req)
28# 定义一个响应返回数据respData,也就是读取查询北京天气的页面
29respData = resq.read()
30# 打印北京天气查询结果页的源代码
31print(respData)
32

运行一下,需要等待一点时间,就可以看到北京天气查询结果页的源代码输出。

Python下的urllib库就先介绍到这里,以后做爬虫或者接口自动化测试,需要用到这些。当然,爬虫和接口测试Python不止urllib这个库,还有更好的库支持完成这些工作。

给TA打赏
共{{data.count}}人
人已打赏
安全技术

C++回调函数

2022-1-11 12:36:11

安全经验

微软发布.NET Framework等产品中23个安全漏洞

2012-5-9 11:12:22

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索