5.使用Redis+Flask维护动态Cookies池

1.为什么要用Cookies池?

  • 网站需要登录才可爬取,例如新浪微博
  • 爬取过程中如果频率过高会导致封号
  • 需要维护多个账号的Cookies池实现大规模爬取

2.Cookies池的要求

  • 自动登录更新
  • 定时验证筛选
  • 提供外部接

3.Cookies池架构

4.github上下载cookie池维护的代码

https://github.com/Germey/CookiesPool

(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
View Code

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.运行项目



猜你喜欢

转载自www.cnblogs.com/zouke1220/p/9395304.html