• requests模块高级


    requests模块高级

    cookie

    • cookie:
        基于用户的用户数据
        -需求:爬取用户的豆瓣网的个人页面数据
    • cookie作用:服务器端使用cookie来记录客户端的状态信息 实现流程:
        1.执行登录操作(获取cookie)
        2.再发起个人主页请求时,需要将cookie携带到该请求中
        注意:session对象:发送请求(会将cookie对象进行自动存储)
    import requests
    #生成一个session对象
    session = requests.session()
    #1 发起登录请求:将cookie获取,且存储到session对象中
    login_url='https://accounts.douban.com/login'
    data={
        'source':'movie',
        'redir':'https://movie.douban.com/',
        'form_email':'15027900535',
        'form_password':'bobo@15027900535',
        'login':'登录'
    }
    # 自定义请求头信息
    headers={
        'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
    
    }
    # 使用session发起post请求
    login_response = session.post(url=login_url,data=data,headers=headers) 
    #2 对个人主页发起请求(session(cookie)),获取响应页面数据
    url = 'https://www.douban.com/people/185687620/'
    response = session.get(url=url,headers=headers)
    page_text = response.text
    with open('./douban110.html','w',encoding='utf-8')as fp:
        fp.write(page_text)

    代理操作

    • 1代理:第三方代替本体执行相关事物。
    • 2为什么使用代理:
        -反爬
        -反反爬
    • 3分类:
        -正向代理:代理客户端获取数据
        -反向代理:代理服务器获取数据
    • 4免费代理ip的网站提供商:
        -www.goubanjia.com(推荐)
        -快代理
        -西祠代理
    import requests
    url = 'http://www.baidu.com/s?wd=ip&ie=utf-8'  #协议要和代理IP统一
    
    # 将代理IP封装到字典
    proxies={
        'http':'59.44.43.198:80'
    }
    # 更换IP
    response = requests.get(url=url,proxies=proxies)
    
    with open('./daili.html','w',encoding='utf-8')as fp:
        fp.write(response.text)
    print('ok')
  • 相关阅读:
    Git
    linux下利用virtualenv搭建虚拟环境
    Session和Cookie
    Redis
    从零开始学Go之基本(二):包、函数声明与格式化输出
    从零开始学Go之HelloWorld
    C++ vector容器使用
    FIRST集和FOLLOW集的计算
    go编译错误:runnerw.exe:CreateProcess failed with error 216:
    Linux下vi编辑器常用命令
  • 原文地址:https://www.cnblogs.com/yuliangkaiyue/p/10001442.html
Copyright © 2020-2023  润新知