免责声明
本文仅供学习和研究目的使用。所提供的信息和技术仅限于合规和合法的使用场景。请读者在应用相关技术时遵守法律法规,尊重他人的数据隐私和网站使用条款。本文作者对因使用本文信息而产生的任何法律责任或损失不承担责任。
1、初识IP代理池
概述:在爬虫业务中,为了防止本机IP被封,可以使用IP代理来隐藏真实IP地址。因此代理的IP对于爬虫业务是非常的珍贵,对此,我们就尝试利用已学的知识白嫖免费的代理,由此产生了IP代理池。
简易IP代理池设计:
DB 数据管理
- Mongo
Fetcher 数据下载
- 云代理
- 快代理
Validata 数据验证
- httpbin.org
- 指定网站
Request 下载器
- 专门下载工具
Scheduler 调度器
- 协调各工具的使用
API API接口开发
FastAPI
- 获取IP
- 获取IP个数
2、日志模块(logging)
概述:logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;
优点:
①、通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息;
②、开发者可以决定将logging信息输出到什么地方,以及怎么输出;
日志级别从低到高:debug、info、warning、error,critical;
知识点补充:logging中默认只显示warning级别及以上等级的信息,如果想要显示debug或info级别的信息可以通过basicConfig调整默认等级,basicConfig除了能调整等级外还能控制日志的输出格式,将日志写入指定文件的功能:
# 演示的是将默认等级调整到info,不会显示debug级别的信息,format是设置日志的输出格式,可以根据需要自行调整
logging.basicConfig(level=logging.INFO,format='%(asctime)s %(levelname)s %(message)s',filename='文件名')
格式化设置:
%(acstime)s 时间
%(filename)s 日志文件名
%(funcName)s 调用日志的函数名
%(levelname)s 日志的级别
%(module)s 调用日志的模块名
%(message)s 日志信息
%(name)s logger的name
实操:通过本实操掌握logging模块的基本用法(写入文件时是追加模式)。
import logging
formats = '%(asctime)s %(levelname)s %(message)s'
filenames = './mylog.log'
# 配置logging模块
logging.basicConfig(level=logging.INFO,format=formats,filename=filenames)
def log_print():
logging.debug('debug ...')
logging.info('info ...')
logging.warning('warn ...')
logging.error('error ...')
logging.critical('critical ...')
if __name__ == '__main__':
log_print()
运行后的mylog.log文件内容如下: