5.使用Redis+Flask维护动态Cookies池
1.为什么要用Cookies池?
- 网站需要登录才可爬取,例如新浪微博
- 爬取过程中如果频率过高会导致封号
- 需要维护多个账号的Cookies池实现大规模爬取
2.Cookies池的要求
- 自动登录更新
- 定时验证筛选
- 提供外部接
3.Cookies池架构
4.github上下载cookie池维护的代码
https://github.com/Germey/CookiesPool
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
(1)安装 pip3 install -r requirements.txt (2)基础配置 修改cookiespool/config.py (3)数据库配置 account:weibo:账号 cookies:weibo:账号 Value分别为密码和Cookies 账号自行某宝购买 Redis连接信息到cookiespool/config文件修改 (4)云打码平台配置 到yundama.com注册开发者和普通用户。 开发者申请应用ID和KEY,普通用户用于充值登录。 配置信息到cookiespool/config文件修改 (5)进程开关 配置信息到cookiespool/config文件修改 (6)运行 python3 run.py (7)批量导入 python3 importer.py 请输入账号密码组, 输入exit退出读入 18459748505----astvar3647 14760253606----gmidy8470 14760253607----uoyuic8427 18459749258----rktfye8937 账号 18459748505 密码 astvar3647 录入成功 账号 14760253606 密码 gmidy8470 录入成功 账号 14760253607 密码 uoyuic8427 录入成功 账号 18459749258 密码 rktfye8937 录入成功 exit
5.修改配置文件
C:\software\phpStudy\PHPTutorial\WWW\python3\maoyantop100\CookiesPool-master\cookiespool\config.py
# Redis数据库地址 REDIS_HOST = '192.168.33.12' # Redis端口 REDIS_PORT = 6379 # Redis密码,如无填None REDIS_PASSWORD = '' # 配置信息,无需修改 REDIS_DOMAIN = '*' REDIS_NAME = '*' # 云打码相关配置到yundama.com申请注册 YUNDAMA_USERNAME = '*****' YUNDAMA_PASSWORD = '*****' YUNDAMA_APP_ID = '3372' YUNDAMA_APP_KEY = '1b586a30bfda5c7fa71c881075ba49d0' YUNDAMA_API_URL = 'http://api.yundama.com/api.php' # 云打码最大尝试次数 YUNDAMA_MAX_RETRY = 20 # 产生器默认使用的浏览器 DEFAULT_BROWSER = 'PhantomJS' # 'Chrome' # 产生器类,如扩展其他站点,请在此配置 GENERATOR_MAP = { 'weibo': 'WeiboCookiesGenerator' } # 测试类,如扩展其他站点,请在此配置 TESTER_MAP = { 'weibo': 'WeiboValidTester' } # 产生器和验证器循环周期 CYCLE = 120 # API地址和端口 API_HOST = '127.0.0.1' API_PORT = 5000 # 进程开关 # 产生器,模拟登录添加Cookies GENERATOR_PROCESS = True # 验证器,循环检测数据库中Cookies是否可用,不可用删除 VALID_PROCESS = False # API接口服务 API_PROCESS = True
6.运行项目