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

news2024/11/17 16:29:10

账号池搭建

必要性

常见登录方式:

  • 基于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即可访问代理IP池的前台

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

项目源码

GitHub - Python3WebSpider/AccountPool: Account Pool

更多精致内容:[CodeRealm]

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1955939.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【 C++ 】 类和对象的学习

前言: 😘我的主页:OMGmyhair-CSDN博客 目录 引言: 一、类的作用域 二、计算类对象的大小 三、this指针 this指针❓1 this指针❓2 this指针❓3 引言: 通过类我们可以对数据和方法进行封装 封装的意义&#xf…

【Android】实现一个优雅的自定义底部导航栏(速通安卓大作业必备)

文章目录 前言一、实现思路二、代码实现流程①修改theme:②在color文件中添加颜色:③添加图标文件④添加选中时布局的背景⑤修改布局文件⑥按钮效果图:⑦修改MainActivity中的代码⑦创建各个界面的Fragment⑧运行结果: 三、 总结 …

【学术会议征稿】第五届人工智能与教育国际学术会议(ICAIE 2024)

第五届人工智能与教育国际学术会议(ICAIE 2024) 2024 5th International Conference on Artificial Intelligence and Education 第五届人工智能与教育国际学术会议(ICAIE 2024)由集美大学诚毅学院主办,闽南师范大学…

福昕PDF编辑器v13专业版 授权版

福昕高级PDF编辑器是一款功能强大的PDF文件编辑软件,提供多种实用的编辑功能。 软件截图: 使用说明: 解压后,双击start.bat来运行软件 下载地址:FoxitPDFEditor-Pro-v13 解压密码:helloh 下载时可能会有…

动手学大模型应用开发笔记--用dash开发一个大模型知识库

简介 动手学,把自己学到的东西动手自己做出来并输出,是最好的学习方式。最近一直在关注和使用各种ai工具,也在学一些ai开发的知识,看到datawhale的开源学习教程,动手学大模型开发( [github.com/datawhalech…])这个教…

高频面试题基本总结回顾(含笔试高频算法整理)暂存篇

干货分享,感谢您的阅读! (暂存篇---后续会删除,完整版和持续更新见高频面试题基本总结回顾(含笔试高频算法整理)) 备注:引用请标注出处,同时存在的问题请在相关博客留言…

dockerfile部署镜像 ->push仓库 ->虚拟机安装建木 ->自动部署化 (详细步骤)

目录 创建私服仓库 vi /etc/docker/daemon.json vim deploy.sh判断脚本内容 创建 建木 后端部署 命名空间 设置密码用户名 创建git仓库 gitignore文件内容 图形项目操作 git maven docker镜像 点击流程日志 vim /etc/docker/daemon.json 执行部署脚本 ip 开发…

代码性能优化(3)——聊聊多线程

代码的性能优化,有些是从逻辑层面进行的,比如同时对50W个人发放奖励,可以改成用户登录的时候,自动领取有没奖励,或者统计每日的每个业务员的销售额和实时累积的销售额,将实时sum函数改成,每一笔…

24种设计模式介绍与6大设计原则(电子版教程)

前言 您是一个初级的 coder,可以从中领会到怎么设计一段优秀的代码;您是一个高级程序员,可以从中全面了解到设计模式以及 Java 的边角技术的使用;您是一个顶级的系统分析师,可以从中获得共鸣,寻找到项目公共问题的解决…

StarRock3.3 安装部署

服务器前置要求: 1、内存>32GB 2、JDK 8 is not supported, please use JDK 11 or 17 1、安装 wget https://releases.starrocks.io/starrocks/StarRocks-3.3.0.tar.gz tar zxvf StarRocks-3.3.0.tar.gz 2、FE服务启动 2.1 配置FE节点(默认配置,…

dns和 openELB

DNS yum -y install bind允许其他的主机来监听,允许其他的主机来查询,改这两个地方就行了。 把需要解析的文件都添加进来,cp -p的意思是保留原来的权限控制 注意本地dns放在 DNS1 二、负载均衡 OpenELB Layer2 模式 BGP模式 OpenELB …

DBeaver使用SQL脚本编辑器

文章目录 1 新建脚本2 选择数据库3 编写脚本【按行执行】参考 1 新建脚本 2 选择数据库 3 编写脚本【按行执行】 光标放到需要执行的行上,点击【最上面的按钮】 或者选中某片代码,然后执行 也可以编写一个脚本然后执行 参考 dbeaver安装和使用教程 …

Linux文件恢复

很麻烦 一般还是小心最好 特别恢复的时候 可能不能选择某个文件夹去扫描恢复 所以 删除的时候 用rm -i代替rm 一定小心 以及 探索下linux的垃圾箱机制 注意 一定要恢复到不同文件夹 省的出问题 法1 系统自带工具 debugfs 但是好像不能重启? testdisk 1、安装 …

酒店智能门锁接口pro[0922]D801 对接收银-SAAS本地化-未来之窗行业应用跨平台架构

proUSB接口函数[0922中性版]-D801 调用函数库: 提供Windows下的32位动态连接库proRFL.DLL,函数使用详细说明 //-----------------------------------------------------------------------------------// 功能:读DLL版本,不涉…

【大数据】:hdfs相关进程启停管理命令

HADOOP_HOME/sbin/start-dfs.sh,一键启动HDFS集群 执行原理: 在执行此脚本的机器上,启动SecondaryNameNode 读取core-site.xml内容(fs.defaultFS项),确认NameNode所在机器,启动NameNode 读取wor…

AI变现:科技与商业化的交织

随着科技的飞速发展,人工智能(AI)已经从科幻电影中的概念走进了现实生活的各个领域,深刻影响着经济、社会与科技的发展。AI不仅代表着技术的革新,更是推动商业变现的重要力量。本文将深入剖析AI的发展历程,…

数据结构(5.3_5)——二叉树的线索化

第一种寻找中序前驱方法 中序线索化 本质上就是一次中序遍历,只不过需要在一边遍历一边处理结点线索化 代码: //全局变量pre 指向当前访问结点的前驱 ThreadNode* pre NULL;struct ElemType {int value; };//线索二叉树结点 typedef struct ThreadNode…

姜夔,师法自然的不仕道人

姜夔(ku),字尧章,号白石道人,约生于南宋绍兴二十四年(公元1154年),卒于南宋嘉定十四年(公元1221年),享年67岁。他的艺术成就涵盖了诗词、散文、书…

JAVA (IO流) day7.25

ok了家人们今天继续学习io流,废话不多说,我们一起看看吧 一.File类 1.1 File类的概述 通过 File 类与 IO 流进行搭配使用就可以通过 Java 代码将数 据从内存写入到硬盘文件 或者从硬盘文件读取到内存 中。 File 类就是文件和目录路径名的抽象表示形式…

ElasticSearch(es)倒排索引

目录 一、ElasticSearch 二、倒排索引 1. 正向索引 2. 倒排索引 具体细节 1. 文档分析 2. 索引构建 3. 索引存储 4. 词条编码 5. 索引优化 6. 查询处理 示例 总结 3. 正向和倒排 三、总结 倒排索引的基本概念 为什么倒排索引快 一、ElasticSearch Elasticsear…