Python 3基础教程31-urllib模块
本文介绍Python里的urllib模块,这个urllib主要处理web服务的,如果需要做接口测试,或者写Python的网络爬虫,这个urllib就是最底层的库。需要用到里面的请求方法等。
1. 先看看一个不带参数的http 请求
# urllib模块 import urllib.request # 向web服务器发送一个请求,打开百度学术首页 x = urllib.request.urlopen('http://xueshu.baidu.com/') # 打印页面源代码 print(x.read())
自己运行下,这里就不贴运行结果
2.再看看带参数的http 请求,这里以新浪天气举例
# urllib模块 import urllib.request import urllib.parse # 向web服务器发送一个请求,打开百度学术首页 #x = urllib.request.urlopen('http://xueshu.baidu.com/') # 打印页面源代码 #print(x.read()) # 发送一个带参数的请求 url = 'http://php.weather.sina.com.cn/search.php' values = {'city':'北京', 'dpc':'1' } ''' city=北京,这个字段需要转码,转成后是%B1%B1%BE%A9 你可以打开http://php.weather.sina.com.cn,搜索北京看看是不是这个转码 这个转码过程就叫encode ''' data = urllib.parse.urlencode(values) # 参数的编码格式是Unicode,这里用utf-8,最适合网络传输的编码协议 data = data.encode('utf-8') # 调用一个有url和参数的请求,通过Request(url,data) req = urllib.request.Request(url,data) # 打开这个请求,通过urlopen函数 resq = urllib.request.urlopen(req) # 定义一个响应返回数据respData,也就是读取查询北京天气的页面 respData = resq.read() # 打印北京天气查询结果页的源代码 print(respData)
运行一下,需要等待一点时间,就可以看到北京天气查询结果页的源代码输出。
Python下的urllib库就先介绍到这里,以后做爬虫或者接口自动化测试,需要用到这些。当然,爬虫和接口测试Python不止urllib这个库,还有更好的库支持完成这些工作。