• requests模块高级使用


    编辑本随笔

    一、Cookie

     cookie作用:服务器使用cookie来记录客户端的状态信息

    实现流程:

    1. 执行登陆操作(获取cookie)
    2. 在发起个人主页请求时,需要将cookie携带到该请求中

    注意:session对象,也可以发送请求,如果服务器端会给客户端返回cookie,session对象自动将cookie进行存储

    import requests
    
    #创建session对象
    session = requests.session()
    
    #创建headlers
    headers={
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"
    }
    
    #指定login对应url
    login_url = "https://accounts.douban.com/j/mobile/login/basic"
    
    #封装登陆相关数据
    data = {
        "ck": "",
        "name": "17502368221",
        "password": "cv@125436",
        "remember": "true",
        "ticket": ""
    }
    
    #使用session发起登陆请求,将cookie获取且存储到session当中
    login_response=session.post(url=login_url,data=data,headers=headers)
    
    #使用session对个人主页发起请求,获取响应页面数据
    home_url="https://www.douban.com/people/191728538/"
    
    response=session.get(url=home_url,headers=headers)
    
    page_text=response.text
    
    with open("./doubanHomePage.html",'w',encoding="utf-8") as fp:
        fp.write(page_text)

    二、代理

    代理:第三方代替本体执行相关事务

    什么要使用代理:

    1. 反爬操作。
    2. 反反爬手段

    分类:

    1. 正向代理:代理客户端获取数据(爬虫使用正向代理)
    2. 反向代理:代替服务端提供数据

    免费代理IP提供商:

    1. www.goubanjia.com
    2. 快代理
    3. 西祠代理

    注意:我们请求网站的使用的协议和代理使用的协议要保证一致,http或者https

    import requests
    
    url = 'http://www.baidu.com/s?wd=ip&ie=utf-8'
    
    #将代理IP封装到一个字典中
    proxy={
        "http":"195.208.172.70:8080"
    }
    
    #构建headers
    headers={
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"
    }
    
    #在请求之前更换网络IP
    response=requests.get(url=url,headers=headers,proxies=proxy)
    
    #数据持久化
    page_text=response.text
    with open("./代理.html",'w',encoding='utf-8') as fp:
        fp.write(page_text)
  • 相关阅读:
    Spring自动装配Beans
    Spring过滤器组件自动扫描
    Spring自动扫描组件
    Spring EL运算符实例
    Spring EL方法调用实例
    Spring EL bean引用实例
    Spring EL hello world实例
    Spring @PostConstruct和@PreDestroy实例
    Spring Bean init-method 和 destroy-method实例
    Spring Bean InitializingBean和DisposableBean实例
  • 原文地址:https://www.cnblogs.com/yaya625202/p/10375817.html
Copyright © 2020-2023  润新知