AI Slop Code RIsk Monitor

cv-cat/Spider_XHS

小红书爬虫数据采集,小红书逆向,私信,直播,小红书全域运营解决方案

16.7 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for cv-cat/Spider_XHS, a Python project with 8,062 GitHub stars. SynthScan examined 16,928 lines of code across 74 source files, recording 241 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 16.7 (Elevated pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

16.7
Adjusted Signal
16.7
Raw Pattern Score
100%
Time Factor
2026-10-08
Last Push
8.1K
Stars
Python
Language
16.9K
Lines of Code
74
Files
241
Pattern Hits
2026-10-12
Scan Date
0.19
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 19.0/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 74 finding(s).

Hallucinated Dependency & Supply Chain Risk 19.4/100 · LOW

Are imports declared and package/API names verified? 66 finding(s).

Agent Over-Engineering Ratio 43.7/100 · MEDIUM

Are wrappers, guards, and repeated structures necessary? 159 finding(s).

PR Review Velocity Impact 60.6/100 · HIGH

Which changes need focused human review? 241 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 14MEDIUM 2LOW 225

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 241 distinct pattern matches across 9 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Unused Imports63 hits · 63 pts
SeverityFileLineSnippetContext
LOWdemo.py9CODE
LOWxhs_utils/xhs_auth.py9CODE
LOWxhs_utils/xhs_auth.py14CODE
LOWxhs_utils/xhs_auth.py14CODE
LOWxhs_utils/xhs_auth.py14CODE
LOWxhs_utils/xhs_auth.py21CODE
LOWxhs_utils/xhs_auth.py21CODE
LOWxhs_utils/xhs_auth.py21CODE
LOWxhs_utils/xhs_auth.py21CODE
LOWxhs_utils/xhs_auth.py28CODE
LOWxhs_utils/xhs_auth.py28CODE
LOWxhs_utils/xhs_auth.py28CODE
LOWxhs_utils/data_util.py2CODE
LOWxhs_utils/xhs_util.py3CODE
LOWxhs_utils/xhs_util.py4CODE
LOWxhs_utils/xhs_pc/auth.py4CODE
LOWxhs_utils/xhs_pc/dsl.py43CODE
LOWxhs_utils/xhs_pc/__init__.py13CODE
LOWxhs_utils/xhs_pc/__init__.py13CODE
LOWxhs_utils/xhs_pc/__init__.py13CODE
LOWxhs_utils/xhs_pc/__init__.py14CODE
LOWxhs_utils/xhs_pc/__init__.py15CODE
LOWxhs_utils/xhs_pc/__init__.py15CODE
LOWxhs_utils/xhs_pc/runtime.py10CODE
LOWxhs_utils/xhs_pc/http.py3CODE
LOWxhs_utils/xhs_pc/state.py8CODE
LOWxhs_utils/xhs_creator/auth.py3CODE
LOWxhs_utils/xhs_creator/params.py3CODE
LOWxhs_utils/xhs_creator/params.py18CODE
LOWxhs_utils/xhs_creator/params.py19CODE
LOWxhs_utils/xhs_creator/__init__.py10CODE
LOWxhs_utils/xhs_creator/__init__.py10CODE
LOWxhs_utils/xhs_creator/__init__.py11CODE
LOWxhs_utils/xhs_creator/__init__.py12CODE
LOWxhs_utils/xhs_creator/__init__.py13CODE
LOWxhs_utils/xhs_creator/__init__.py13CODE
LOWxhs_utils/xhs_creator/runtime.py7CODE
LOWxhs_utils/xhs_creator/runtime.py16CODE
LOWxhs_utils/xhs_creator/http.py3CODE
LOWxhs_utils/xhs_creator/state.py8CODE
LOWxhs_utils/xhs_core/cookies.py3CODE
LOWxhs_utils/xhs_core/auth.py3CODE
LOWxhs_utils/xhs_core/params.py3CODE
LOWxhs_utils/xhs_core/dsl.py3CODE
LOWxhs_utils/xhs_core/__init__.py3CODE
LOWxhs_utils/xhs_core/__init__.py3CODE
LOWxhs_utils/xhs_core/__init__.py3CODE
LOWxhs_utils/xhs_core/__init__.py3CODE
LOWxhs_utils/xhs_core/__init__.py3CODE
LOWxhs_utils/xhs_core/__init__.py10CODE
LOWxhs_utils/xhs_core/runtime.py3CODE
LOWxhs_utils/xhs_core/http.py8CODE
LOWapis/xhs_pugongying_apis.py5CODE
LOWapis/__init__.py1CODE
LOWapis/__init__.py1CODE
LOWapis/__init__.py1CODE
LOWapis/__init__.py1CODE
LOWapis/__init__.py1CODE
LOWapis/__init__.py1CODE
LOWapis/__init__.py1CODE
3 more matches not shown…
Empty Error Handlers11 hits · 55 pts
SeverityFileLineSnippetContext
HIGHxhs_utils/data_util.py180except (KeyError, TypeError):CODE
HIGHxhs_utils/data_util.py52except (KeyError, TypeError):CODE
HIGHxhs_utils/data_util.py96except (KeyError, IndexError, TypeError):CODE
HIGHxhs_utils/data_util.py125except (KeyError, TypeError):CODE
HIGHxhs_utils/data_util.py178except (KeyError, IndexError, TypeError):CODE
HIGHxhs_utils/xhs_pc/params.py279except (OSError, _sp.TimeoutExpired):CODE
HIGHxhs_utils/xhs_creator/auth.py436except Exception:CODE
HIGHapis/xhs_creator_login_apis.py471except (ValueError, AttributeError):CODE
HIGHapis/xhs_live.py254except (TypeError, json.JSONDecodeError):CODE
HIGHapis/xhs_live.py319except json.JSONDecodeError:CODE
HIGHapis/xhs_live.py857except (AttributeError, KeyError, TypeError, ValueError,CODE
Excessive Try-Catch Wrapping58 hits · 51 pts
SeverityFileLineSnippetContext
LOWxhs_utils/xhs_pc/dsl.py109 except Exception as e:CODE
LOWxhs_utils/xhs_creator/auth.py436 except Exception:CODE
LOWxhs_utils/xhs_creator/auth.py466 except Exception:CODE
LOWxhs_utils/xhs_core/dsl.py71 except Exception as exc:CODE
LOWapis/xhs_creator_login_apis.py260 except Exception:CODE
LOWapis/xhs_creator_login_apis.py670 except Exception as error:CODE
LOWapis/xhs_creator_login_apis.py1128 except Exception as error:CODE
LOWapis/xhs_pc_login_apis.py513 except Exception as e:CODE
LOWapis/xhs_pc_login_apis.py833 except Exception as exc:CODE
LOWapis/xhs_pc_login_apis.py858 except Exception as exc:CODE
LOWapis/xhs_pc_login_apis.py875 except Exception as exc:CODE
LOWapis/xhs_pc_login_apis.py905 except Exception as exc:CODE
LOWapis/xhs_creator_apis.py278 except Exception as error:CODE
LOWapis/xhs_creator_apis.py312 except Exception as error:CODE
LOWapis/xhs_creator_apis.py337 except Exception as error:CODE
LOWapis/xhs_creator_apis.py417 except Exception as error:CODE
LOWapis/xhs_creator_apis.py516 except Exception as error:CODE
LOWapis/xhs_creator_apis.py552 except Exception as error:CODE
LOWapis/xhs_creator_apis.py583 except Exception as error:CODE
LOWapis/xhs_creator_apis.py927 except Exception as error:CODE
MEDIUMapis/xhs_creator_apis.py282def get_topic(self, keyword, proxies=None):CODE
MEDIUMapis/xhs_creator_apis.py317def get_location_info(self, keyword, proxies=None):CODE
LOWapis/xhs_pc_apis.py199 except Exception as e:CODE
LOWapis/xhs_pc_apis.py250 except Exception as e:CODE
LOWapis/xhs_pc_apis.py278 except Exception as e:CODE
LOWapis/xhs_pc_apis.py302 except Exception as e:CODE
LOWapis/xhs_pc_apis.py320 except Exception as e:CODE
LOWapis/xhs_pc_apis.py348 except Exception as e:CODE
LOWapis/xhs_pc_apis.py380 except Exception as e:CODE
LOWapis/xhs_pc_apis.py408 except Exception as e:CODE
LOWapis/xhs_pc_apis.py439 except Exception as e:CODE
LOWapis/xhs_pc_apis.py467 except Exception as e:CODE
LOWapis/xhs_pc_apis.py498 except Exception as e:CODE
LOWapis/xhs_pc_apis.py533 except Exception as e:CODE
LOWapis/xhs_pc_apis.py671 except Exception as e:CODE
LOWapis/xhs_pc_apis.py693 except Exception as e:CODE
LOWapis/xhs_pc_apis.py712 except Exception as e:CODE
LOWapis/xhs_pc_apis.py996 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1030 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1061 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1087 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1116 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1142 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1171 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1200 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1224 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1241 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1264 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1289 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1312 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1337 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1360 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1385 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1416 except Exception as e:CODE
LOWapis/xhs_pc_apis.py1449 except Exception as e:CODE
LOWspider/spider.py22 except Exception as e:CODE
LOWspider/spider.py67 except Exception as e:CODE
LOWspider/spider.py99 except Exception as e:CODE
Hyper-Verbose Identifiers45 hits · 44 pts
SeverityFileLineSnippetContext
LOWmain.py50def _fetch_and_print_creator_notes(CODE
LOWdemo.py199async def pc_qrcode_send_and_listen_im() -> None:CODE
LOWxhs_utils/xhs_qianfan_util.py4def get_qianfan_headers_template():CODE
LOWxhs_utils/xhs_pugongying_util.py14def get_pugongying_user_info_headers():CODE
LOWxhs_utils/xhs_pugongying_util.py29def get_pugongying_signed_user_info_headers(CODE
LOWxhs_utils/xhs_pugongying_util.py57def get_pugongying_headers_template():CODE
LOWxhs_utils/xhs_pugongying_util.py80def generate_pugongying_headers(cookies, api, data='', profile=None):CODE
LOWxhs_utils/xhs_pugongying_util.py99def get_pugongying_bozhu_data(page, brandUserId, contentTag=None):CODE
LOWxhs_utils/xhs_creator_util.py46def load_creator_rap_fingerprint_hex() -> str:CODE
LOWxhs_utils/xhs_pc/auth.py264 def _sync_storage_from_profile(self) -> None:CODE
LOWxhs_utils/xhs_pc/params.py155def generate_search_request_id():CODE
LOWxhs_utils/xhs_pc/params.py161def generate_search_session_id():CODE
LOWxhs_utils/xhs_pc/params.py362def get_request_headers_template(CODE
LOWxhs_utils/xhs_pc/params.py405def build_pc_navigation_headers(headers, cookies=None):CODE
LOWxhs_utils/xhs_pc/params.py434def build_pc_business_headers(headers, cookies, *, api, method='POST'):CODE
LOWxhs_utils/xhs_pc/state.py447 def _sync_release_for_web_build(self) -> None:CODE
LOWxhs_utils/xhs_pc/state.py659 def profile_data_from_capture(self, fields: Mapping[str, Any]) -> str:CODE
LOWxhs_utils/xhs_creator/params.py100def build_creator_navigation_headers(headers, cookies=None):CODE
LOWxhs_utils/xhs_creator/params.py109def build_creator_login_headers(headers, cookies=None, *, kind='security'):CODE
LOWxhs_utils/xhs_creator/params.py131def build_creator_business_headers(headers, cookies=None, *, method='GET'):CODE
LOWxhs_utils/xhs_creator/params.py158def get_request_headers_template(CODE
LOWxhs_utils/xhs_creator/params.py265def generate_profile_request_params(CODE
LOWapis/xhs_creator_login_apis.py62def _order_creator_login_cookies(cookies: dict) -> dict:CODE
LOWapis/xhs_creator_login_apis.py228 def _add_service_ratelimit_header(self, headers):CODE
LOWapis/xhs_creator_login_apis.py325 def bootstrap_publish_navigation(self, *, path: str = '/publish/publish?source=official'):CODE
LOWapis/xhs_creator_login_apis.py513 def _finish_security_bootstrap(self, *, activate: bool = True) -> None:CODE
LOWapis/xhs_creator_login_apis.py608 def _require_security_cookies(self, names=None) -> None:CODE
LOWapis/xhs_creator_apis.py119def _creator_note_manager_headers(headers, cookies, *, user_info=False):CODE
LOWapis/xhs_creator_apis.py773 def extract_video_cover_and_metadata(self, video):CODE
LOWapis/xhs_creator_apis.py862 # def get_all_publish_note_info(self, proxies=None):COMMENT
LOWapis/xhs_creator_apis.py965 def get_all_publish_note_info(self, proxies=None):CODE
LOWapis/xhs_live.py58def rsa_encrypt_short_link_payload(payload: bytes) -> bytes:CODE
LOWapis/xhs_live.py1175 async def connect_push_from_storage(self, *, room_id: Optional[str] = None) -> XHSWebSocket:CODE
LOWapis/xhs_live.py1279 def report_offline_message_ack(self, params: Mapping[str, Any]):CODE
LOWapis/xhs_live.py1289 def get_group_message_history(self, params: Mapping[str, Any]):CODE
LOWapis/xhs_live.py1319 def get_message_location_list(self, params: Mapping[str, Any]):CODE
LOWapis/xhs_live.py1327 def report_message_location_read(self, params: Mapping[str, Any]):CODE
LOWapis/xhs_live.py1375 def send_captured_short_link_message(self, message: str):CODE
LOWapis/xhs_pc_apis.py255 def get_homefeed_recommend_by_num(self, category, require_num, proxies: dict = None):CODE
LOWapis/xhs_pc_apis.py413 def get_user_all_like_note_info(self, user_url: str, proxies: dict = None):CODE
LOWapis/xhs_pc_apis.py444 def get_user_collect_note_info(self, user_id: str, cursor: str, xsec_token='', xsec_source='', proxies: dict = None)CODE
LOWapis/xhs_pc_apis.py472 def get_user_all_collect_note_info(self, user_url: str, proxies: dict = None):CODE
LOWapis/xhs_pc_apis.py816 def get_worldcup_display_period(self, proxies: dict = None):CODE
LOWapis/xhs_pc_apis.py858 def sync_search_history_captured(CODE
LOWapis/xhs_pc_apis.py1176 def get_note_all_inner_comment(self, comment: dict, xsec_token: str, proxies: dict = None):CODE
Modern Structural Boilerplate32 hits · 32 pts
SeverityFileLineSnippetContext
LOWxhs_utils/xhs_auth.py137__all__ = [CODE
LOWxhs_utils/xhs_pc/auth.py325 def update_cookies(self, cookies: Any, *, source_url: str = '') -> None:CODE
LOWxhs_utils/xhs_pc/auth.py533 def _set_dsl(self, value: str) -> None:CODE
LOWxhs_utils/xhs_pc/auth.py541__all__ = ['PC_PARAMETER_SOURCES', 'XHSAuth', 'XHSPcAuth']CODE
LOWxhs_utils/xhs_pc/params.py573__all__ = [CODE
LOWxhs_utils/xhs_pc/__init__.py17__all__ = [CODE
LOWxhs_utils/xhs_pc/runtime.py329__all__ = [CODE
LOWxhs_utils/xhs_pc/http.py32__all__ = [CODE
LOWxhs_utils/xhs_pc/state.py325 def set_rwp_login_token(self, token: Mapping[str, Any]) -> None:CODE
LOWxhs_utils/xhs_pc/state.py496 def update_cookies(self, cookies: Any) -> None:CODE
LOWxhs_utils/xhs_pc/state.py784__all__ = [CODE
LOWxhs_utils/xhs_creator/auth.py267 def update_cookies(self, cookies: Any, *, source_url: str = '') -> None:CODE
LOWxhs_utils/xhs_creator/auth.py538 def _set_dsl(self, value: str) -> None:CODE
LOWxhs_utils/xhs_creator/auth.py550__all__ = ['CREATOR_PARAMETER_SOURCES', 'XHSCreatorAuth']CODE
LOWxhs_utils/xhs_creator/params.py347__all__ = [CODE
LOWxhs_utils/xhs_creator/dsl.py37__all__ = ['get_dsl', 'get_ds_bundle', 'DSN_READY', 'DSN_BOOTSTRAP']CODE
LOWxhs_utils/xhs_creator/__init__.py15__all__ = [CODE
LOWxhs_utils/xhs_creator/runtime.py184__all__ = [CODE
LOWxhs_utils/xhs_creator/http.py35__all__ = [CODE
LOWxhs_utils/xhs_creator/state.py403 def update_cookies(self, cookies: Any) -> None:CODE
LOWxhs_utils/xhs_creator/state.py630__all__ = [CODE
LOWxhs_utils/xhs_core/cookies.py174__all__ = [CODE
LOWxhs_utils/xhs_core/auth.py125__all__ = [CODE
LOWxhs_utils/xhs_core/params.py34__all__ = ['generate_x_b3_traceid', 'generate_xray_traceid', 'splice_str']CODE
LOWxhs_utils/xhs_core/dsl.py123__all__ = ['DsFetcher']CODE
LOWxhs_utils/xhs_core/__init__.py12__all__ = [CODE
LOWxhs_utils/xhs_core/runtime.py87__all__ = ['run_node_json', 'generate_websectiga']CODE
LOWxhs_utils/xhs_core/http.py192__all__ = [CODE
LOWapis/xhs_creator_login_apis.py1278__all__ = ['XHSCreatorLoginApi']CODE
LOWapis/xhs_creator_apis.py973__all__ = ['XHS_Creator_Apis', 'XHSCreatorApis']CODE
LOWapis/__init__.py13__all__ = [CODE
LOWapis/xhs_live.py1493__all__ = [CODE
AI Structural Patterns13 hits · 12 pts
SeverityFileLineSnippetContext
LOWxhs_utils/xhs_pc/auth.py338CODE
LOWxhs_utils/xhs_pc/params.py500CODE
LOWxhs_utils/xhs_pc/params.py536CODE
LOWxhs_utils/xhs_pc/runtime.py255CODE
LOWxhs_utils/xhs_creator/params.py158CODE
LOWxhs_utils/xhs_creator/params.py211CODE
LOWxhs_utils/xhs_creator/params.py265CODE
LOWapis/xhs_creator_login_apis.py184CODE
LOWapis/xhs_pc_login_apis.py50CODE
LOWapis/xhs_creator_apis.py171CODE
LOWapis/xhs_pc_apis.py717CODE
LOWapis/xhs_pc_apis.py928CODE
LOWspider/spider.py73CODE
Deep Nesting12 hits · 11 pts
SeverityFileLineSnippetContext
LOWxhs_utils/data_util.py69CODE
LOWxhs_utils/data_util.py218CODE
LOWxhs_utils/xhs_qianfan_util.py42CODE
LOWxhs_utils/xhs_pugongying_util.py134CODE
LOWxhs_utils/xhs_pc/params.py414CODE
LOWxhs_utils/xhs_pc/params.py434CODE
LOWxhs_utils/xhs_creator/params.py109CODE
LOWxhs_utils/xhs_creator/state.py439CODE
LOWapis/xhs_live.py130CODE
LOWapis/xhs_live.py814CODE
LOWapis/xhs_pc_apis.py928CODE
LOWapis/xhs_pc_apis.py1423CODE
Cross-Language Confusion3 hits · 10 pts
SeverityFileLineSnippetContext
HIGHxhs_utils/xhs_pc/dsl.py19 glb['_BHjFmfUMEtxhI'](__$c, [,,undefined,Uint8Array,getdss])STRING
HIGHxhs_utils/xhs_creator/auth.py237 Creator ``mns0101`` calls ``_dsf(null, 24-byte input)`` from the DSSTRING
HIGHapis/xhs_pc_login_apis.py201 dsl_pair = f'null;{self.dsl}'CODE
Over-Commented Block4 hits · 4 pts
SeverityFileLineSnippetContext
LOWapis/xhs_creator_login_apis.py41)COMMENT
LOWapis/xhs_creator_apis.py821 finally:COMMENT
LOWapis/xhs_creator_apis.py841 # splice_api = splice_str(api, params)COMMENT
LOWapis/xhs_creator_apis.py861 # # 获取全部的发布信息COMMENT