【笔记整理】request模块基本使用

基本使用

发送get请求、获取响应各种请求、响应信息

def fun1():
    url = "http://www.baidu.com"
    resp = requests.get(url)

    print(resp)

    # 打印时会发现乱码
    # 因为resp默认是自动推算编码的,经常会出错
    print(resp.text)

    # 解决方法一,设置响应的编码
    resp.encoding = "utf-8"
    print(resp.encoding)
    print(resp.text)

    # 解决方法二,直接对二进制的响应体进行解码(因为decode方法默认是utf8编码,所以一般如果网站是UTF8编码,此时就会成功解码了!如果GBK请用GBK)
    print(resp.content.decode())

    ## 响应头信息
    print(resp.headers)

    # 响应状态码
    print(resp.status_code)

    # 请求对象,请求的信息
    print(resp.request)
    # 请求的url地址
    print(resp.request.url)

    # 请求对象中的请求头信息
    print(resp.request.headers)

发送时设置请求头

def fun2():
    url = "http://www.baidu.com"

    # 带了UA去请求和不带UA去请求返回的内容不一样,证明网站都是有检测UA的,以前做易语言POST都做过了....
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0"
    }
    resp = requests.get(url, headers=headers)
    print(resp.content.decode())

设置get请求的查询字符串

假设你的url是:http://www.baidu.com/s?wd=java

def fun1():
    # "http://www.baidu.com/s?wd=python"

    url = "http://www.baidu.com/s?"

    # 带UA
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/104.0"
    }
     # 通过params参数设置查询字符串
    resp = requests.get(url, headers=headers, params={
        "wd": "java"
    })
 
    # print(resp.content.decode())
    # 将响应体写入到文件中
    with open("baidu3.html", "w", encoding="utf-8") as f:
        f.write(resp.content.decode())

if __name__ == '__main__':

    fun1()
posted @ 2023-07-17 10:54  蕝戀  阅读(6)  评论(0编辑  收藏  举报