Python学习-19.Python的Http模块
模拟 http 请求是比较常见的一种需求,在 Python 中,使用 http 模块操作。
1 import http.client 2 3 # 创建 Http 连接。 4 http = http.client.HTTPConnection('www.baidu.com') 5 # 设置请求,第一个参数为请求方法,第二个参数为请求的页面。 6 http.request('GET','/') 7 # 获取百度主页的内容,返回的是一个 bytes。 8 html = http.getresponse().read() 9 # 关闭 Http 连接。 10 http.close() 11 12 # 新建文件,并使用 utf-8 编码,否则写入时会出错。 13 file = open(r'e:\temp\baidu.html','w',encoding='utf-8') 14 # 写入解码后的 Html 内容。 15 file.write(html.decode()) 16 # 关闭文件。 17 file.close()
值得注意的是,我们需要设置好编码,在Python中,open新建的文件默认是ascii的,而我们获取到的内容是unicode的,因此直接写入的话会出错。在命令行模式下输出同理,因为命令行的编码模式是gbk。