get请求是HTTP协议中最基本、最常见的操作。我们在浏览器中直接输入网址访问网站就是一个很常见的get请求操作。
发送get请求只需要调用urllib库的request模块的urlopen方法,把要访问的网址作为参数传入。
这里以访问百度为例。
from urllib import request
#抓取百度
def fetch_baidu():
http_client = request.urlopen('http://baidu.com')
content = http_client.read()
print('HTTP Status:{}, {}'.format(http_client.status, http_client.reason))
print('HTTP Response headers:')
for k, v in http_client.getheaders():
print('{}:{}'.format(k, v))
http_client.close()
return content.decode('utf-8')
def save_page(content):
with open('baidu.html', 'w', encoding='utf-8') as f:
f.write(content)
def main():
content = fetch_baidu()
save_page(content)
if __name__ == '__main__':
main()
其中,http_client是一个HTTPResponse对象,里面包含了网站返回的数据。通过read方法获取网页里的内容,status和reason属性可以告诉我们是否访问成功。