Skip to content

Commit

Permalink
refactor(response.py): 优化Response类参数默认值及方法实现
Browse files Browse the repository at this point in the history
在`Response`类中进行了以下修改:
- 将`url`参数的默认值从`None`改为`""`,以提供更明确的空字符串作为默认值。
- 在`guess_encoding`方法中,当`self.content`为空时,返回默认编码"utf-8"而不是直接返回。
- 更新了`extract`方法中的`rules`参数,默认值设为`None`,并在方法内部处理为`{}`,以增强灵活性。
- 修改了`get`方法的文档说明,使其更加清晰地描述了使用`jmespath`进行匹配的功能,并调整了参数说明以更好地反映实际用途。

这些改动旨在提高代码的可读性和维护性。
  • Loading branch information
KKKKKKKEM committed Nov 29, 2024
1 parent c1f2947 commit 02d8628
Showing 1 changed file with 8 additions and 11 deletions.
19 changes: 8 additions & 11 deletions bricks/lib/response.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ def __init__(
content: Any = None,
status_code: int = 200,
headers: Union[Header, dict, Mapping] = None,
url: str = None,
url: str = "",
encoding: str = None,
reason: str = "ok",
cookies: Cookies = None,
Expand Down Expand Up @@ -72,7 +72,7 @@ def __init__(

def guess_encoding(self):
if not self.content:
return
return "utf-8"

# 1. 从header中获取编码
content_type = self.headers.get("Content-Type")
Expand Down Expand Up @@ -153,7 +153,7 @@ def extract_all(
def extract(
self,
engine: Union[str, Callable],
rules: dict,
rules: dict = None,
):
"""
提取引擎, 生成器模式, 支持 Rule, 批量匹配
Expand All @@ -169,6 +169,7 @@ def extract(
"JASONPATH": extractors.JsonpathExtractor,
"REGEX": extractors.RegexExtractor,
}
rules = rules or {}
if not engine:
return []

Expand Down Expand Up @@ -288,15 +289,11 @@ def re_first(self, regex, default=None, obj=None, **kwargs):

def get(self, rule: str, obj=None, strict=True, **kwargs):
"""
json匹配
json规则示例:
字典内直接采用 a.b.c 的方式匹配
如果要匹配列表内的每一项, 采用$代替每一项
如果要从父级开始匹配, 采用//代替父级节点
对 `response.text` 进行 `jmespath` 匹配, 并返回匹配结果。 类似于直接使用 `jmespath` 进行 `jmespath` 匹配。 更多语法请参考: [JMESPath — JMESPath](https://jmespath.org/)
:param rule: json解析规则
:param strict: json解析规则
:param obj: 需要匹配的dict/list对象
:param rule: `jmespath`规则
:param strict: 是否严格匹配,为 `False`时可以匹配 `jsonp`字符串
:param obj: 需要匹配的对象,默认为 `self.json()`
:return:
"""
obj = obj or self.text
Expand Down

0 comments on commit 02d8628

Please sign in to comment.