首页 > 其他分享 >构建大规模账号池与本地部署:GitHub爬虫项目详解

构建大规模账号池与本地部署:GitHub爬虫项目详解

时间:2024-07-28 19:06:11浏览次数:11  
标签:username GitHub redis self REDIS 爬虫 antispider7 详解 env

账号池搭建

必要性

常见登录方式:

  • 基于Session + Cookie的登录
  • 基于JWT的登录:登录生成JWT字符串

账号池存储cookie或者JWT字符串 方便后续发请求爬取数据

本地部署

  1. conda建立一个虚拟环境

    conda create -n new_env python=3.x  # 替换 x 为你需要的 Python 版本 
    
  2. 激活新建环境

    conda activate new_env
    
  3. 安装依赖项

    pip install -r requirments.txt
    
  4. 修改setting.py配置文件

    • 配置redis数据库

      •   # redis host
          REDIS_HOST = env.str('REDIS_HOST', '127.0.0.1')
          # redis port
          REDIS_PORT = env.int('REDIS_PORT', 6379)
          # redis password, if no password, set it to None
          REDIS_PASSWORD = env.str('REDIS_PASSWORD', None)
          # redis db, if no choice, set it to 0
          REDIS_DB = env.int('REDIS_DB', 0)
        
    • 配置检测网址

      •   GENERATOR_MAP = {
              'antispider6': 'Antispider6Generator',
              'antispider7': 'Antispider7Generator'
          }
          
          # integrated tester
          TESTER_MAP = {
              'antispider6': 'Antispider6Tester',
              'antispider7': 'Antispider7Tester',
          }
          
          TEST_URL_MAP = {
              'antispider6': 'https://antispider6.scrape.center/',
              'antispider7': 'https://antispider7.scrape.center/'
          }
        
    • 配置生成网址

      •       def generate(self, username, password):
                  """
                  generate main process
                  """
                  if self.credential_operator.get(username):
                      logger.debug(f'credential of {username} exists, skip')
                      return
                  login_url = 'https://antispider7.scrape.center/api/login'
                  s = requests.Session()
                  r = s.post(login_url, json={
                      'username': username,
                      'password': password
                  })
                  if r.status_code != 200:
                      logger.error(f'error occurred while generating credential of {username}, error code {r.status_code}')
                      return
                  token = r.json().get('token')
                  logger.debug(f'get credential {token}')
                  self.credential_operator.set(username, token)
        
  5. 配置账号密码的生成机制

    可以利用虚拟号接受验证码注册账号密码,需要花钱但不贵

    def init(self):
        """
            do init
            """
        for i in range(1, self.MAX_COUNT + 1):
            self.account_operator.set(f'admin{i}', f'admin{i}')
    
  6. 运行redis服务

  7. 运行项目

    python run.py antispider7
    
  8. 通过访问http://127.0.0.1:6379即可访问账号池的前端页面

    • //random:随机JWT字符串或者cookie
    • //count:数量

项目源码

GitHub - Python3WebSpider/AccountPool: Account Pool

更多精致内容,关注公众号:[CodeRealm]

标签:username,GitHub,redis,self,REDIS,爬虫,antispider7,详解,env
From: https://www.cnblogs.com/CodeRealm/p/18328720

相关文章

  • 微服务安全——SpringSecurity6详解
    文章目录说明SpringSecurity认证快速开始设置用户名密码基于application.yml方式基于JavaBean配置方式设置加密方式自定义用户加载方式自定义登录页面前后端分离认证认证流程SpringSecurity授权web授权:基于url的访问控制自定义授权失败异常处理方法授权:基于注解的访......
  • C语言输出函数printf详解
    printf1.1基本类型printf()的作用是将参数文本输出到屏幕。f代表format(格式化),表示可以定制输出文本的格式。printf()的头文件是stdio.h例如:#include<stdio.h>intmain(){ printf("HelloWorld"); return0;}1.2占位符printf()可以在输出文本中指定占位符......
  • Python爬虫入门01:在Chrome浏览器轻松抓包
    文章目录爬虫基本概念爬虫定义爬虫工作原理爬虫流程爬虫类型爬虫面临的挑战使用Chrome浏览器抓包查看网页HTML代码查看HTTP请求请求头(RequestHeader)服务器响应抓包的意义爬虫基本概念爬虫定义爬虫(WebCrawler或Spider)是一种自动浏览互联网的程序,它按照一定的......
  • 2024牛客多校第四场F.Good Tree 挑战全网最详解
    好吧标题党了一回,但我相信有不少人被出题人的那句“手玩一下就知道了”无语住了像我这种憨憨一旦想偏了就救不回来了,于是困惑了好久,在雨巨的指导下彻底搞懂(此处大声谢谢雨巨,又有实力又会讲题又认真答疑每一个问题,呜呜呜我永远的姐)题意简单来说就是定义f(i)为树上i点到其他所有......
  • 科普文:详解 JuiceFS 读性能:预读、预取、缓存、FUSE 和对象存储
    在高性能计算场景中,往往采用全闪存架构和内核态并行文件系统,以满足性能要求。随着数据规模的增加和分布式系统集群规模的增加,全闪存的高成本和内核客户端的运维复杂性成为主要挑战。JuiceFS,是一款全用户态的云原生分布式文件系统,通过分布式缓存大幅提升I/O吞吐量,并使用成本......
  • STM32F103 SPI详解及示例代码
    1SPI协议详解 SPI是串行外设接口(SerialPeripheralInterface)的缩写,是美国摩托罗拉公司(Motorola)最先推出的一种同步串行传输规范,也是一种单片机外设芯片串行扩展接口,是一种高速、全双工、同步通信总线,所以可以在同一时间发送和接收数据,SPI没有定义速度限制,通常能达到甚至超过10......
  • Cat 详解
    优质博文:IT-BLOG-CN一、简介Cat[CentralApplicationTracking]是基于Java开发的分布式实时监控系统,有一个非常强大和丰富的可视化报表界面,在Cat提供的报表界面中有非常多的功能,几乎能看到你想要的任何维度的报表数据。缺点就是集成的时候具有代码的侵入性。在中间件(RPC、......
  • Java 多线程技术详解
    文章目录Java多线程技术详解目录引言多线程的概念为什么使用多线程?多线程的特征多线程的挑战多线程的实现方式3.1继承`Thread`类示例代码:3.2实现`Runnable`接口示例代码:3.3使用`Executor`框架示例代码:3.4使用`Callable`和`Future`示例代码:线程的生命......
  • (BS ISO 11898-1:2015)CAN_FD 总线协议详解5- MAC子层描述3
    目录 创作不易,请帮忙点赞+评论+转载,非常感谢5.4.3MACRF(远程帧)规范5.4.3.1描述5.4.3.2MACDF和MACRF相同的字段5.4.3.3仲裁字段5.4.3.4控制字段5.4.4错误帧(EF)的规范5.4.4.1描述5.4.4.2错误标志5.4.4.3错误分隔符5.4.5过载帧(OF)的规定5.......
  • 音频编码基础详解
    音频编码是将音频信号转换成数字数据的过程,使其能够在计算机系统中存储、处理和传输。音频编码的目的是在保持音质的同时,尽可能地减少数据量。以下是音频编码的详细讲解:音频编码的基本原理采样:将连续的模拟音频信号转换成离散的数字信号。每秒钟对音频信号进行的采样次数称为采......