• 爬虫之request模块高级


    一、cookie&session

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

    实现流程:

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

    注意:session对象也可以发送请求,并且会将cookie对象进行自动存储

    cookie&session演示

    import requests
    
    session = requests.session()
    # 1. 发起登陆请求:将cookie获取,且存储到session对象中
    login_url = 'https://accounts.douban.com/login'
    data = {
        'source':'None',
        'redir':'https://www.douban.com/people/141236419/',
        'form_email':'18931895326',
        'form_password':'lshhxr0418',
        'login':'登陆',
    }
    
    # 自定义请求头信息
    headers =  {
         'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
    }
    
    # 使用session发起post请求
    login_response = session.post(url=login_url,data=data,headers=headers)
    
    # 2. 对个人主页发起请求(session),获取响应页面数据
    url = 'https://www.douban.com/people/141236419/'
    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. 为什么要使用代理

      1. 反爬操作。

      2. 反反爬手段

    3. 分类

      1. 正向代理:代替客户端获取数据

      2. 反向代理:代理服务器端提供数据

    4. 免费代理ip的网站提供商

      1. www.goubanjia.com (建议使用)

      2. 快代理

      3. 西祠代理

     

    代理演示

    import requests
    
    url = 'http://www.baidu.com/s?ie=utf-8&wd=ip'
    
    # 将代理ip封装到字典
    # 更换网络ip
    proxy = {
        'http':'118.27.20.17:3128'
    }
    
    # 自定义请求头信息
    headers =  {
         'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
    }
    
    # 更换网络IP
    response = requests.get(url=url,proxies=proxy,headers=headers)
    
    with open('./daili.html','w',encoding='utf-8') as fp:
        fp.write(response.text)
  • 相关阅读:
    Android开发:系统自动实现开机启动
    Android高手进阶教程【转】
    android 各种控件颜色值
    Android开发博客国内最大的移动开发博客eoe移动开发者社区
    异步图片加载工具类
    Android中shape的使用
    Android的asset/res资源框架结构
    winddows 运行指令 (2)
    使用activeMQ实现jms
    ActiveMQ在C#中的应用
  • 原文地址:https://www.cnblogs.com/lshedward/p/10647512.html
Copyright © 2020-2023  润新知