FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [View Raw Code]   [Original HTTPS Page]

Notes/python-basic-notes/python-days/Day_60.md at master · We2one/Notes · GitHub

/ Notes Public

Latest commit

 

History

History
41 lines (30 loc) · 2.73 KB

File metadata and controls

41 lines (30 loc) · 2.73 KB

代理池 和 Cookie 池

代理池

准备工作
  • 安装 Redis 数据库 并启动、安装 aiohttp (异步请求)asyncioFlask
代理池的目标
  • 基本模块 : 存储模块获取模块检测模块接口模块
    • 存储模块 : 负责存储抓取下来的代理,选择 Redis 的 list (可以实现队列,队列更方便校验排序)
      • 保证获取的代理可以按照一定的先后顺序进行排序
      • 方便对之前爬取过的代理进行重新校验
    • 获取模块 : 定时在各大代理网站抓取代理
      • 代理 : 可以是免费公开代理也可以是付费代理,代理的形式 IP 加 端口
      • 尽量从不同源获取,尽量抓取高匿代理,抓取成功后将可用代理保存到数据库
    • 检测模块 : 测验代理是否可以使用
      • 测试方法 : 设置一个目标网站并设置好代理,如果可以返回内容并且不超时,说明代理可用
      • 检测模块 : 使用异步请求 (代理检测比较耗时).代理检测如果可用,就将代理添加到代理池中
    • 添加模块 : 如果代理池数量没有达到设置的最大代理数,那么就会循环调用获取模块获取代理,同时调用检测模块来检测,并将可用的代理添加到代理池
    • 接口模块 : 将代理池获取代理的功能架设到 Flask 上,那么只需要访问一个 url 就可以获取一个代理,使用代理十分方便
    • 调度器模块 : 设置两个进程
      • 进程一 : 循环检测代理的数量,如果代理池数量不足,就调用添加模块不断添加内容
      • 进程二 : 不断循环检验代理,这里检验代理是对于代理池中的 可用代理 ,防止代理超出其时效性
      • 两个进程都需要设置一个循环校验时间,避免频繁检验和添加

cookie 池

  • 通过获取每个账号模拟登陆后的 cookies 信息,保存到数据库,定时监测 cookies 的时效性
准备工作
  • 安装 Redis 数据库,安装 requests,selenium, Flask 模块
Cookie 的目标
  • 存储模块 : 负责存储每个账号的用户名、密码和每个账号对应的 Cookies 信息,同时提供对数据的存储操作
  • 生成模块 : 负责获取登陆之后的 Cookie ,这个模块要从数据库中获取账号密码,在模拟登陆目标页面,如果登录成功,就获取 Cookies 保存到数据库
  • 检测模块 : 负责定时检测数据库中的 cookies 是否有效,使用 Cookies 请求链接,如果登录状态成功,则是有效的,否则失效并删除,接下来等待生成模块重新登陆生成 Cookies
  • 接口模块 : 通过 API 提供对外服务的接口,Cookies 越多越好,被检测到的概率越小,越安全

Back | FazBrowse Home | New Git URL