Requests

作者: 咻咻咻滴赵大妞 | 来源:发表于2018-12-30 17:52 被阅读0次

    requests的简单使用

    1.最基本的GET请求可以直接用get方法

    response = requests.get(url)

    • response的常用方法:
      response.text 返回解码后的字符串
      respones.content 以字节形式(二进制)返回。
      response.status_code  响应状态码
      response.request.headers  请求的请求头
      response.headers  响应头
      response.encoding = 'utf-8' 可以设置编码类型
      response.url 查看完整的url地址
      response.encoding 获取当前的编码
      response.json() 内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常

    2.添加headsers和查询参数

    import requests
    
    kw = {'wd':'长城'}
    
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
    }
    
    # params 接收一个字典或者字符串的查询参数,
    # 字典类型自动转换为url编码,不需要urlencode()
    response = requests.get(
        "http://www.baidu.com/s?",
        params = kw, 
        headers = headers
    )
    print(response.text)
    

    基本POST请求(data参数)

    1.最基本post方法

    response = requests.post(url=url, data = data)

    url:post请求的目标url
    data:post请求的表单数据

    设置代理(proxies参数)

    如果需要使用代理,你可以通过为任意请求方法提供 proxies 参数来配置单个请求:

    import requests
    
    # 根据协议类型,选择不同的代理
    proxies = {
        "http": "http://12.34.56.79:9527",
        "https": "http://12.34.56.79:9527",
    }
    
    response = requests.get(
        "http://www.baidu.com", 
        proxies = proxies
    )
    print(response.text)
    

    Cookies

    import requests
    
    response = requests.get("https://www.douban.com/")
    
    # 7\. 返回CookieJar对象:
    cookiejar = response.cookies
    
    # 8\. 将CookieJar转为字典:
    cookiedict = requests.utils.dict_from_cookiejar(
        cookiejar
    )
    
    print (cookiejar)
    
    print (cookiedict)
    

    然后可以使用cookidict继续发起请求,登录成功后访问个人主页,能够成功获取到个人主页信息,说明确实保存了cookie

    session

    在 requests 里,session对象是一个非常常用的对象,这个对象代表一次用户会话:从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开。

    会话能让我们在跨请求时候保持某些参数,比如在同一个 Session 实例发出的所有请求之间保持 cookie 。

    #requests.session(): 维持会话,可以让我们在跨请求时,保存某些参数
    import requests
    
    #实例化session
    session = requests.session()
    
    #目标url
    url = 'https://www.douban.com/accounts/login'
    
    form_data = {
        'source': 'index_nav',
        'form_email': '18518753265',
        'form_password': 'ljh12345678',
        'captcha-solution': 'purpose',
        'captcha-id': 'TaXhQ6a7ylku0Ylt4WfRbDPe:en'
    }
    
    #设置请求头
    req_header = {
        'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
    }
    
    #使用session发起请求
    response = session.post(url,data=form_data,headers= req_header)
    
    if response.status_code == 200:
        #访问个人主页
        url = 'https://www.douban.com/people/175417123/'
        response = session.get(url,headers=req_header)
        if response.status_code == 200:
            with open('douban3.html','w',encoding='utf-8') as file:
                file.write(response.text)
    
    

    相关文章

      网友评论

          本文标题:Requests

          本文链接:https://www.haomeiwen.com/subject/rmnvlqtx.html