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属性可以告诉我们是否访问成功。

你也可能喜欢

发表评论