通用请求
使用 requests.Session 来保持连接,这样可以复用连接,减少连接建立的开销,提高效率;
检查 HTTP 错误状态码,如果响应中包含 HTTP 错误(如 404 或 500),会引发异常;
使用指数退避算法来处理重试间隔,每次重试之间的等待时间增加(2 的指数次幂),避免对服务器造成过大负载;
打印详细的错误信息以便调试,并在所有尝试失败后返回 None。
解析返回值
HTML
XPath 很好用,直接使用分析网页结构就可以获取到数据了
可以使用 XPath Helper 在线解析,获取数据更方便
HTML 的数据大多在列表中,先获取到上层数据,再遍历解析
使用 yield 返回可以利用到 Python 的协程特性,返回一个列表
Json
直接处理 json 数据就可以了,将数据封装到字典中返回
同样 yield 返回数据,下一步解析的时候,遍历处理字典
结果处理
保存数据
写入文件
终端输出
封装
将通用数据定义在 init 中,避免重复定义
减少类方法的相互调用,减少各方法之间的依赖,利于拓展优化
定义 run 方法,编写执行流程,可以将 run 方法再写到 init 中,实例化的时候就执行
评论区