Repository Analysis

NanmiCoder/MediaCrawler

小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫、快手视频 | 评论爬虫、B 站视频 | 评论爬虫、微博帖子 | 评论爬虫、百度贴吧帖子 | 百度贴吧评论回复爬虫 | 知乎问答文章|评论爬虫

33.4 Strong AI signal View on GitHub
33.4
Adjusted Score
33.4
Raw Score
100%
Time Factor
2026-05-29
Last Push
50,428
Stars
Python
Language
41,169
Lines of Code
206
Files
846
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 45MEDIUM 170LOW 631

Pattern Findings

846 matches across 13 categories. Click a row to expand file-level details.

Self-Referential Comments162 hits · 486 pts
SeverityFileLineSnippet
MEDIUMrecv_sms.py4# This file is part of MediaCrawler project.
MEDIUMvar.py4# This file is part of MediaCrawler project.
MEDIUMmain.py4# This file is part of MediaCrawler project.
MEDIUMdatabase/db.py4# This file is part of MediaCrawler project.
MEDIUMdatabase/models.py4# This file is part of MediaCrawler project.
MEDIUMdatabase/mongodb_store_base.py4# This file is part of MediaCrawler project.
MEDIUMdatabase/__init__.py4# This file is part of MediaCrawler project.
MEDIUMdatabase/db_session.py4# This file is part of MediaCrawler project.
MEDIUMtools/crawler_util.py4# This file is part of MediaCrawler project.
MEDIUMtools/async_file_writer.py4# This file is part of MediaCrawler project.
MEDIUMtools/easing.py4# This file is part of MediaCrawler project.
MEDIUMtools/__init__.py4# This file is part of MediaCrawler project.
MEDIUMtools/utils.py4# This file is part of MediaCrawler project.
MEDIUMtools/slider_util.py4# This file is part of MediaCrawler project.
MEDIUMtools/words.py4# This file is part of MediaCrawler project.
MEDIUMtools/browser_launcher.py4# This file is part of MediaCrawler project.
MEDIUMtools/cdp_browser.py4# This file is part of MediaCrawler project.
MEDIUMtools/app_runner.py4# This file is part of MediaCrawler project.
MEDIUMtools/time_util.py4# This file is part of MediaCrawler project.
MEDIUMtools/file_header_manager.py4# This file is part of MediaCrawler project.
MEDIUMtools/file_header_manager.py81# This file is part of MediaCrawler project.
MEDIUMproxy/__init__.py4# This file is part of MediaCrawler project.
MEDIUMproxy/types.py4# This file is part of MediaCrawler project.
MEDIUMproxy/proxy_mixin.py4# This file is part of MediaCrawler project.
MEDIUMproxy/proxy_ip_pool.py4# This file is part of MediaCrawler project.
MEDIUMproxy/base_proxy.py4# This file is part of MediaCrawler project.
MEDIUMproxy/providers/__init__.py4# This file is part of MediaCrawler project.
MEDIUMproxy/providers/kuaidl_proxy.py4# This file is part of MediaCrawler project.
MEDIUMproxy/providers/jishu_http_proxy.py4# This file is part of MediaCrawler project.
MEDIUMproxy/providers/wandou_http_proxy.py4# This file is part of MediaCrawler project.
MEDIUMcache/local_cache.py4# This file is part of MediaCrawler project.
MEDIUMcache/__init__.py4# This file is part of MediaCrawler project.
MEDIUMcache/abs_cache.py4# This file is part of MediaCrawler project.
MEDIUMcache/cache_factory.py4# This file is part of MediaCrawler project.
MEDIUMcache/redis_cache.py4# This file is part of MediaCrawler project.
MEDIUMtest/test_utils.py4# This file is part of MediaCrawler project.
MEDIUMtest/test_db_sync.py4# This file is part of MediaCrawler project.
MEDIUMtest/test_expiring_local_cache.py4# This file is part of MediaCrawler project.
MEDIUMtest/__init__.py4# This file is part of MediaCrawler project.
MEDIUMtest/test_redis_cache.py4# This file is part of MediaCrawler project.
MEDIUMtest/test_proxy_ip_pool.py4# This file is part of MediaCrawler project.
MEDIUMtest/test_mongodb_integration.py4# This file is part of MediaCrawler project.
MEDIUMconfig/zhihu_config.py4# This file is part of MediaCrawler project.
MEDIUMconfig/base_config.py4# This file is part of MediaCrawler project.
MEDIUMconfig/ks_config.py4# This file is part of MediaCrawler project.
MEDIUMconfig/__init__.py4# This file is part of MediaCrawler project.
MEDIUMconfig/dy_config.py4# This file is part of MediaCrawler project.
MEDIUMconfig/tieba_config.py4# This file is part of MediaCrawler project.
MEDIUMconfig/xhs_config.py4# This file is part of MediaCrawler project.
MEDIUMconfig/db_config.py4# This file is part of MediaCrawler project.
MEDIUMconfig/weibo_config.py4# This file is part of MediaCrawler project.
MEDIUMconfig/bilibili_config.py4# This file is part of MediaCrawler project.
MEDIUMtests/conftest.py4# This file is part of MediaCrawler project.
MEDIUMtests/test_store_factory.py4# This file is part of MediaCrawler project.
MEDIUMtests/test_excel_store.py4# This file is part of MediaCrawler project.
MEDIUMtests/test_excel_store.py267 # Create an instance
MEDIUMcmd_arg/__init__.py4# This file is part of MediaCrawler project.
MEDIUMcmd_arg/arg.py4# This file is part of MediaCrawler project.
MEDIUMmedia_platform/__init__.py4# This file is part of MediaCrawler project.
MEDIUMmedia_platform/bilibili/field.py4# This file is part of MediaCrawler project.
102 more matches not shown…
Cross-File Repetition42 hits · 210 pts
SeverityFileLineSnippet
HIGHmedia_platform/bilibili/login.py0check if the current login status is successful and return true otherwise return false retry decorator will retry 20 tim
HIGHmedia_platform/weibo/login.py0check if the current login status is successful and return true otherwise return false retry decorator will retry 20 tim
HIGHmedia_platform/kuaishou/login.py0check if the current login status is successful and return true otherwise return false retry decorator will retry 20 tim
HIGHmedia_platform/xhs/core.py0concurrently obtain the specified post list and save the data
HIGHmedia_platform/douyin/core.py0concurrently obtain the specified post list and save the data
HIGHmedia_platform/kuaishou/core.py0concurrently obtain the specified post list and save the data
HIGHmedia_platform/weibo/core.py0get creator's information and their notes and comments returns:
HIGHmedia_platform/tieba/core.py0get creator's information and their notes and comments returns:
HIGHmedia_platform/zhihu/core.py0get creator's information and their notes and comments returns:
HIGHstore/bilibili/_store_impl.py0content json storage implementation args: content_item: returns:
HIGHstore/weibo/_store_impl.py0content json storage implementation args: content_item: returns:
HIGHstore/douyin/_store_impl.py0content json storage implementation args: content_item: returns:
HIGHstore/kuaishou/_store_impl.py0content json storage implementation args: content_item: returns:
HIGHstore/zhihu/_store_impl.py0content json storage implementation args: content_item: returns:
HIGHstore/bilibili/_store_impl.py0comment json storage implementation args: comment_item: returns:
HIGHstore/weibo/_store_impl.py0comment json storage implementation args: comment_item: returns:
HIGHstore/douyin/_store_impl.py0comment json storage implementation args: comment_item: returns:
HIGHstore/kuaishou/_store_impl.py0comment json storage implementation args: comment_item: returns:
HIGHstore/zhihu/_store_impl.py0comment json storage implementation args: comment_item: returns:
HIGHstore/bilibili/_store_impl.py0creator json storage implementation args: creator: returns:
HIGHstore/weibo/_store_impl.py0creator json storage implementation args: creator: returns:
HIGHstore/douyin/_store_impl.py0creator json storage implementation args: creator: returns:
HIGHstore/bilibili/_store_impl.py0store video content to mongodb args: content_item: video content data
HIGHstore/douyin/_store_impl.py0store video content to mongodb args: content_item: video content data
HIGHstore/kuaishou/_store_impl.py0store video content to mongodb args: content_item: video content data
HIGHstore/bilibili/_store_impl.py0store comment to mongodb args: comment_item: comment data
HIGHstore/xhs/_store_impl.py0store comment to mongodb args: comment_item: comment data
HIGHstore/weibo/_store_impl.py0store comment to mongodb args: comment_item: comment data
HIGHstore/tieba/_store_impl.py0store comment to mongodb args: comment_item: comment data
HIGHstore/douyin/_store_impl.py0store comment to mongodb args: comment_item: comment data
HIGHstore/kuaishou/_store_impl.py0store comment to mongodb args: comment_item: comment data
HIGHstore/zhihu/_store_impl.py0store comment to mongodb args: comment_item: comment data
HIGHstore/xhs/_store_impl.py0store creator information to mongodb args: creator_item: creator data
HIGHstore/weibo/_store_impl.py0store creator information to mongodb args: creator_item: creator data
HIGHstore/tieba/_store_impl.py0store creator information to mongodb args: creator_item: creator data
HIGHstore/douyin/_store_impl.py0store creator information to mongodb args: creator_item: creator data
HIGHstore/kuaishou/_store_impl.py0store creator information to mongodb args: creator_item: creator data
HIGHstore/zhihu/_store_impl.py0store creator information to mongodb args: creator_item: creator data
HIGHstore/weibo/_store_impl.py0calculate the prefix sorting number for data save files, supporting writing to different files for each run args: file_s
HIGHstore/tieba/_store_impl.py0calculate the prefix sorting number for data save files, supporting writing to different files for each run args: file_s
HIGHstore/kuaishou/_store_impl.py0calculate the prefix sorting number for data save files, supporting writing to different files for each run args: file_s
HIGHstore/zhihu/_store_impl.py0calculate the prefix sorting number for data save files, supporting writing to different files for each run args: file_s
Over-Commented Block162 hits · 162 pts
SeverityFileLineSnippet
LOWrecv_sms.py1# -*- coding: utf-8 -*-
LOWvar.py1# -*- coding: utf-8 -*-
LOWmain.py1# -*- coding: utf-8 -*-
LOWdatabase/db.py1# -*- coding: utf-8 -*-
LOWdatabase/models.py1# -*- coding: utf-8 -*-
LOWdatabase/mongodb_store_base.py1# -*- coding: utf-8 -*-
LOWdatabase/__init__.py1# -*- coding: utf-8 -*-
LOWdatabase/db_session.py1# -*- coding: utf-8 -*-
LOWtools/crawler_util.py1# -*- coding: utf-8 -*-
LOWtools/async_file_writer.py1# -*- coding: utf-8 -*-
LOWtools/easing.py1# -*- coding: utf-8 -*-
LOWtools/__init__.py1# -*- coding: utf-8 -*-
LOWtools/utils.py1# -*- coding: utf-8 -*-
LOWtools/slider_util.py1# -*- coding: utf-8 -*-
LOWtools/words.py1# -*- coding: utf-8 -*-
LOWtools/browser_launcher.py1# -*- coding: utf-8 -*-
LOWtools/cdp_browser.py1# -*- coding: utf-8 -*-
LOWtools/app_runner.py1# -*- coding: utf-8 -*-
LOWtools/time_util.py1# -*- coding: utf-8 -*-
LOWtools/file_header_manager.py1# -*- coding: utf-8 -*-
LOWproxy/__init__.py1# -*- coding: utf-8 -*-
LOWproxy/__init__.py21# -*- coding: utf-8 -*-
LOWproxy/types.py1# -*- coding: utf-8 -*-
LOWproxy/proxy_mixin.py1# -*- coding: utf-8 -*-
LOWproxy/proxy_ip_pool.py1# -*- coding: utf-8 -*-
LOWproxy/base_proxy.py1# -*- coding: utf-8 -*-
LOWproxy/providers/__init__.py1# -*- coding: utf-8 -*-
LOWproxy/providers/kuaidl_proxy.py1# -*- coding: utf-8 -*-
LOWproxy/providers/jishu_http_proxy.py1# -*- coding: utf-8 -*-
LOWproxy/providers/wandou_http_proxy.py1# -*- coding: utf-8 -*-
LOWcache/local_cache.py1# -*- coding: utf-8 -*-
LOWcache/__init__.py1# -*- coding: utf-8 -*-
LOWcache/abs_cache.py1# -*- coding: utf-8 -*-
LOWcache/cache_factory.py1# -*- coding: utf-8 -*-
LOWcache/redis_cache.py1# -*- coding: utf-8 -*-
LOWtest/test_utils.py1# -*- coding: utf-8 -*-
LOWtest/test_db_sync.py1# -*- coding: utf-8 -*-
LOWtest/test_db_sync.py221# [*] Changed tables:
LOWtest/test_db_sync.py241# >>> Manual confirmation required: Synchronize ORM model to MySQL database? (y/N): y
LOWtest/test_expiring_local_cache.py1# -*- coding: utf-8 -*-
LOWtest/__init__.py1# -*- coding: utf-8 -*-
LOWtest/test_redis_cache.py1# -*- coding: utf-8 -*-
LOWtest/test_proxy_ip_pool.py1# -*- coding: utf-8 -*-
LOWtest/test_mongodb_integration.py1# -*- coding: utf-8 -*-
LOWconfig/zhihu_config.py1# -*- coding: utf-8 -*-
LOWconfig/base_config.py1# -*- coding: utf-8 -*-
LOWconfig/base_config.py41
LOWconfig/base_config.py61# CDP 调试端口,用于与浏览器通信
LOWconfig/ks_config.py1# -*- coding: utf-8 -*-
LOWconfig/__init__.py1# -*- coding: utf-8 -*-
LOWconfig/dy_config.py1# -*- coding: utf-8 -*-
LOWconfig/dy_config.py21PUBLISH_TIME_TYPE = 0
LOWconfig/tieba_config.py1# -*- coding: utf-8 -*-
LOWconfig/xhs_config.py1# -*- coding: utf-8 -*-
LOWconfig/db_config.py1# -*- coding: utf-8 -*-
LOWconfig/weibo_config.py1# -*- coding: utf-8 -*-
LOWconfig/bilibili_config.py1# -*- coding: utf-8 -*-
LOWtests/conftest.py1# -*- coding: utf-8 -*-
LOWtests/test_store_factory.py1# -*- coding: utf-8 -*-
LOWtests/__init__.py1# -*- coding: utf-8 -*-
102 more matches not shown…
Hyper-Verbose Identifiers156 hits · 154 pts
SeverityFileLineSnippet
LOWrecv_sms.py46def extract_verification_code(message: str) -> str:
LOWmain.py86async def _generate_wordcloud_if_needed() -> None:
LOWdatabase/db_session.py31async def create_database_if_not_exists(db_type: str):
LOWtools/crawler_util.py66async def find_qrcode_img_from_canvas(page: Page, canvas_selector: str) -> str:
LOWtools/crawler_util.py148async def convert_browser_context_cookies(
LOWtools/crawler_util.py159def convert_str_cookie_to_dict(cookie_str: str) -> Dict:
LOWtools/crawler_util.py177def match_interact_info_count(count_str: str) -> int:
LOWtools/crawler_util.py226def extract_url_params_to_dict(url: str) -> Dict:
LOWtools/async_file_writer.py62 async def write_single_item_to_json(self, item: Dict, item_type: str):
LOWtools/async_file_writer.py82 async def generate_wordcloud_from_comments(self):
LOWtools/words.py50 async def generate_word_frequency_and_cloud(self, data, save_words_prefix):
LOWtools/cdp_browser.py47 def _register_cleanup_handlers(self):
LOWtools/cdp_browser.py140 async def _connect_existing_browser(
LOWtools/cdp_browser.py288 async def _get_browser_websocket_url(self, debug_port: int) -> str:
LOWtools/time_util.py60def get_time_str_from_unix_time(unixtime):
LOWtools/time_util.py71def get_date_str_from_unix_time(unixtime):
LOWtools/time_util.py82def get_unix_time_from_time_str(time_str):
LOWtools/file_header_manager.py67def generate_copyright_header(relative_path: str) -> str:
LOWproxy/proxy_mixin.py57 async def _refresh_proxy_if_expired(self) -> None:
LOWtest/test_utils.py38async def test_convert_browser_context_cookies_uses_url_filter():
LOWtest/test_proxy_ip_pool.py94 async def test_proxy_pool_auto_refresh(self):
LOWtest/test_proxy_ip_pool.py136 async def test_ip_expiration_standalone(self):
LOWtest/test_mongodb_integration.py222 def test_xhs_store_implementation(self):
LOWtest/test_mongodb_integration.py274 def test_douyin_store_implementation(self):
LOWtest/test_mongodb_integration.py319 def test_concurrent_operations(self):
LOWtests/test_cmd_arg_tieba.py10async def test_tieba_detail_cli_sets_specified_ids():
LOWtests/test_cmd_arg_tieba.py26async def test_tieba_creator_cli_sets_creator_urls():
LOWtests/test_cmd_arg_tieba.py45async def test_tieba_detail_reads_runtime_specified_ids(monkeypatch):
LOWtests/test_store_factory.py66 def test_create_mongodb_store(self):
LOWtests/test_store_factory.py85 def test_invalid_store_option(self):
LOWtests/test_store_factory.py92 def test_all_stores_registered(self):
LOWtests/test_static_proxy_provider.py9def test_default_proxy_provider_remains_existing_provider():
LOWtests/test_static_proxy_provider.py16async def test_static_proxy_provider_parses_proxy_url(monkeypatch):
LOWtests/test_static_proxy_provider.py32async def test_static_proxy_provider_rejects_invalid_url(monkeypatch):
LOWtests/test_static_proxy_provider.py41async def test_static_proxy_pool_disables_validation(monkeypatch):
LOWtests/test_api_limits.py12async def test_cmd_arg_crawler_max_notes_count():
LOWtests/test_api_limits.py29def test_crawler_manager_build_command():
LOWtests/test_api_limits.py65def test_api_start_crawler_with_limits():
LOWtests/test_api_limits.py90def test_api_start_crawler_without_limits():
LOWtests/test_api_limits.py123def test_api_rejects_invalid_limits(field_name, value):
LOWtests/test_excel_store.py173 def test_empty_sheets_removed(self, excel_store):
LOWtests/test_excel_store.py191def test_excel_import_availability():
LOWtests/test_excel_store.py213 def test_get_instance_returns_same_instance(self):
LOWtests/test_excel_store.py220 def test_get_instance_different_params_returns_different_instances(self):
LOWtests/test_excel_store.py231 async def test_singleton_preserves_data(self):
LOWtests/test_excel_store.py245 def test_flush_all_saves_all_instances(self, tmp_path):
LOWtests/test_excel_store.py265 def test_flush_all_clears_instances(self):
LOWtests/test_tieba_extractor.py16def test_extract_search_note_list_from_keyword_page():
LOWtests/test_tieba_extractor.py26def test_extract_search_note_list_from_current_pc_card_page():
LOWtests/test_tieba_extractor.py64def test_extract_search_note_list_from_current_pc_api():
LOWtests/test_tieba_extractor.py101def test_extract_note_detail_and_comments_from_current_pc_api():
LOWtests/test_tieba_extractor.py163def test_extract_creator_info_and_threads_from_current_pc_api():
LOWtests/test_tieba_extractor.py204def test_extract_tieba_note_list_from_current_frs_api():
LOWtests/test_tieba_extractor.py222def test_extract_tieba_note_list_from_bigpipe_thread_page():
LOWtests/test_tieba_extractor.py233def test_extract_note_detail_from_post_page():
LOWtests/test_tieba_extractor.py245def test_extract_parent_comments_from_post_page():
LOWtests/test_tieba_extractor.py259def test_extract_sub_comments_with_class_token_matching():
LOWtests/test_tieba_client_pagination.py14async def test_search_uses_requested_page_number():
LOWtests/test_tieba_client_pagination.py31async def test_comments_walk_pages_until_total_reply_page():
LOWtests/test_tieba_client_pagination.py70async def test_creator_feed_walks_until_has_more_false(monkeypatch):
96 more matches not shown…
Unused Imports142 hits · 142 pts
SeverityFileLineSnippet
LOWmain.py32
LOWdatabase/db.py23
LOWdatabase/models.py19
LOWdatabase/models.py21
LOWtools/crawler_util.py27
LOWtools/crawler_util.py35
LOWtools/async_file_writer.py24
LOWtools/utils.py24
LOWtools/utils.py25
LOWtools/utils.py26
LOWtools/browser_launcher.py28
LOWtools/browser_launcher.py29
LOWtools/app_runner.py21
LOWproxy/__init__.py25
LOWproxy/proxy_mixin.py31
LOWproxy/proxy_ip_pool.py29
LOWproxy/providers/__init__.py25
LOWproxy/providers/__init__.py26
LOWproxy/providers/__init__.py27
LOWproxy/providers/kuaidl_proxy.py29
LOWproxy/providers/jishu_http_proxy.py28
LOWproxy/providers/wandou_http_proxy.py28
LOWtest/test_db_sync.py27
LOWconfig/base_config.py143
LOWconfig/base_config.py144
LOWconfig/base_config.py145
LOWconfig/base_config.py146
LOWconfig/base_config.py147
LOWconfig/base_config.py148
LOWconfig/base_config.py149
LOWconfig/__init__.py21
LOWconfig/__init__.py22
LOWtests/test_store_factory.py24
LOWtests/test_excel_store.py25
LOWtests/test_excel_store.py26
LOWcmd_arg/__init__.py21
LOWcmd_arg/arg.py21
LOWmedia_platform/bilibili/client.py40
LOWmedia_platform/bilibili/__init__.py26
LOWmedia_platform/xhs/client.py23
LOWmedia_platform/xhs/client.py36
LOWmedia_platform/xhs/__init__.py21
LOWmedia_platform/xhs/__init__.py22
LOWmedia_platform/weibo/client.py43
LOWmedia_platform/weibo/__init__.py25
LOWmedia_platform/weibo/__init__.py26
LOWmedia_platform/weibo/__init__.py27
LOWmedia_platform/weibo/core.py29
LOWmedia_platform/tieba/__init__.py22
LOWmedia_platform/tieba/core.py24
LOWmedia_platform/douyin/client.py38
LOWmedia_platform/douyin/client.py39
LOWmedia_platform/douyin/client.py40
LOWmedia_platform/douyin/client.py36
LOWmedia_platform/douyin/__init__.py21
LOWmedia_platform/douyin/core.py24
LOWmedia_platform/douyin/help.py29
LOWmedia_platform/kuaishou/client.py27
LOWmedia_platform/kuaishou/client.py37
LOWmedia_platform/kuaishou/__init__.py22
82 more matches not shown…
Excessive Try-Catch Wrapping109 hits · 113 pts
SeverityFileLineSnippet
LOWmain.py82 except Exception as e:
LOWmain.py96 except Exception as e:
LOWmain.py125 except Exception as e:
LOWmain.py133 except Exception as e:
LOWmain.py154 except Exception:
LOWdatabase/mongodb_store_base.py75 except Exception as e:
LOWdatabase/mongodb_store_base.py111 except Exception as e:
LOWdatabase/mongodb_store_base.py120 except Exception as e:
LOWdatabase/mongodb_store_base.py132 except Exception as e:
LOWdatabase/mongodb_store_base.py142 except Exception as e:
LOWdatabase/db_session.py98 except Exception as e:
LOWtools/crawler_util.py61 except Exception as e:
LOWtools/async_file_writer.py146 except Exception as e:
LOWtools/browser_launcher.py187 except Exception as e:
LOWtools/browser_launcher.py206 except Exception:
LOWtools/browser_launcher.py238 except Exception:
LOWtools/browser_launcher.py288 except Exception as e:
LOWtools/cdp_browser.py135 except Exception as e:
LOWtools/cdp_browser.py246 except Exception as e:
LOWtools/cdp_browser.py309 except Exception as e:
LOWtools/cdp_browser.py344 except Exception as e:
LOWtools/cdp_browser.py398 except Exception as e:
LOWtools/cdp_browser.py409 except Exception as e:
LOWtools/cdp_browser.py420 except Exception as e:
LOWtools/cdp_browser.py445 except Exception as context_error:
LOWtools/cdp_browser.py466 except Exception as browser_error:
LOWtools/cdp_browser.py495 except Exception as e:
LOWtools/cdp_browser.py521 except Exception as e:
LOWtools/app_runner.py82 except Exception:
LOWtools/app_runner.py102 except Exception as e:
LOWtools/time_util.py92 except Exception as e:
LOWtools/file_header_manager.py209 except Exception as e:
LOWproxy/proxy_ip_pool.py93 except Exception as e:
LOWproxy/proxy_ip_pool.py186 except Exception as e:
LOWproxy/base_proxy.py82 except Exception as e:
LOWtest/test_db_sync.py196 except Exception as e:
MEDIUMtest/test_db_sync.py197 print(f"Error processing MySQL: {e}")
LOWtest/test_db_sync.py213 except Exception as e:
MEDIUMtest/test_db_sync.py214 print(f"Error processing SQLite: {e}")
LOWtest/test_mongodb_integration.py42 except Exception as e:
LOWtest/test_mongodb_integration.py86 except Exception as e:
MEDIUMtest/test_mongodb_integration.py36def setUpClass(cls):
LOWmedia_platform/bilibili/client.py144 except Exception as e:
LOWmedia_platform/bilibili/core.py223 except Exception as e:
LOWmedia_platform/bilibili/core.py321 except Exception as e:
LOWmedia_platform/bilibili/core.py365 except Exception as e:
LOWmedia_platform/bilibili/core.py552 except Exception as e:
LOWmedia_platform/bilibili/core.py570 except Exception as e:
LOWmedia_platform/bilibili/core.py635 except Exception as e:
LOWmedia_platform/bilibili/core.py679 except Exception as e:
LOWmedia_platform/bilibili/core.py702 except Exception as e:
LOWmedia_platform/bilibili/core.py725 except Exception as e:
LOWmedia_platform/xhs/client.py256 except Exception as e:
LOWmedia_platform/xhs/client.py527 except Exception as e:
LOWmedia_platform/xhs/client.py532 except Exception as e:
LOWmedia_platform/xhs/core.py446 except Exception as e:
LOWmedia_platform/xhs/login.py68 except Exception:
LOWmedia_platform/xhs/login.py117 except Exception as e:
LOWmedia_platform/xhs/help.py368 except Exception as e:
LOWmedia_platform/weibo/client.py129 except Exception as e:
49 more matches not shown…
Deep Nesting39 hits · 38 pts
SeverityFileLineSnippet
LOWmain.py119
LOWtools/async_file_writer.py82
LOWtools/slider_util.py84
LOWtools/browser_launcher.py191
LOWtools/browser_launcher.py214
LOWtools/browser_launcher.py241
LOWtools/cdp_browser.py425
LOWcache/redis_cache.py77
LOWtest/test_db_sync.py101
LOWtest/test_db_sync.py133
LOWcmd_arg/arg.py154
LOWcmd_arg/arg.py160
LOWmedia_platform/bilibili/client.py260
LOWmedia_platform/bilibili/core.py70
LOWmedia_platform/bilibili/core.py183
LOWmedia_platform/bilibili/core.py240
LOWmedia_platform/xhs/playwright_sign.py72
LOWmedia_platform/xhs/client.py456
LOWmedia_platform/xhs/core.py129
LOWmedia_platform/weibo/core.py137
LOWmedia_platform/weibo/help.py29
LOWmedia_platform/tieba/client.py516
LOWmedia_platform/tieba/core.py148
LOWmedia_platform/tieba/core.py402
LOWmedia_platform/tieba/help.py303
LOWmedia_platform/douyin/client.py253
LOWmedia_platform/douyin/core.py127
LOWmedia_platform/douyin/core.py183
LOWmedia_platform/zhihu/core.py150
LOWmedia_platform/zhihu/help.py76
LOWapi/routers/data.py33
LOWapi/routers/data.py62
LOWapi/routers/data.py99
LOWapi/routers/data.py191
LOWapi/routers/websocket.py90
LOWapi/services/crawler_manager.py80
LOWapi/services/crawler_manager.py241
LOWstore/excel_store_base.py171
LOWstore/xhs/__init__.py184
Redundant / Tautological Comments20 hits · 29 pts
SeverityFileLineSnippet
LOWdatabase/db_session.py46 # Check if database exists
LOWtools/browser_launcher.py97 # Check if path exists and is executable
LOWtools/cdp_browser.py436 # Check if context is already closed
LOWtools/cdp_browser.py460 # Check if browser is still connected
LOWtools/file_header_manager.py100 # Check if contains Copyright keyword
LOWtools/file_header_manager.py130 # Check if first line is shebang
LOWmedia_platform/bilibili/client.py70 # Check if proxy has expired before each request
LOWmedia_platform/bilibili/client.py307 # Check if is_end and next exist
LOWmedia_platform/bilibili/core.py177 end_day = (start_day + timedelta(days=1) - timedelta(seconds=1)) # Set end_day to start_day + 1 day - 1 sec
LOWmedia_platform/bilibili/core.py179 end_day = (end_day + timedelta(days=1) - timedelta(seconds=1)) # Set end_day to end_day + 1 day - 1 second
LOWmedia_platform/xhs/client.py127 # Check if proxy is expired before each request
LOWmedia_platform/xhs/client.py208 # Check if proxy is expired before request
LOWmedia_platform/weibo/client.py74 # Check if proxy is expired before each request
LOWmedia_platform/weibo/core.py435 # Check if it's a long text
LOWmedia_platform/tieba/client.py250 # Check if proxy is expired before each request
LOWmedia_platform/douyin/login.py150 # Check if there is slider verification
LOWmedia_platform/douyin/help.py121 # Check if it's a short link (v.douyin.com)
LOWmedia_platform/kuaishou/client.py67 # Check if proxy is expired before each request
LOWmedia_platform/zhihu/client.py97 # Check if proxy is expired before each request
LOWstore/excel_store_base.py373 # Check if there are any sheets left
Cross-Language Confusion3 hits · 18 pts
SeverityFileLineSnippet
HIGHmedia_platform/tieba/core.py502 get: () => undefined,
HIGHmedia_platform/douyin/help.py95 "([params, post_data, ua]) => window.bdms.init._v[2].p[42].apply(null, [0, 1, 8, params, post_data, ua])",
HIGHapi/main.py75 "note": "WebUI not found, please build it first: cd webui && npm run build"
Verbosity Indicators5 hits · 10 pts
SeverityFileLineSnippet
LOWmedia_platform/tieba/core.py415 # Step 1: Visit Baidu homepage
LOWmedia_platform/tieba/core.py419 # Step 2: Wait for page loading, using delay setting from config file
LOWmedia_platform/tieba/core.py423 # Step 3: Find and click "Tieba" link
LOWmedia_platform/tieba/core.py479 # Step 5: Wait for page to stabilize, using delay setting from config file
LOWmedia_platform/tieba/core.py449 # Step 4: Click Tieba link (check if it will open in a new tab)
AI Slop Vocabulary3 hits · 8 pts
SeverityFileLineSnippet
MEDIUMpackage-lock.json3425 "resolved": "https://registry.npmmirror.com/robust-predicates/-/robust-predicates-3.0.2.tgz",
MEDIUMapi/webui/assets/index-DvClRayq.js33 */var qm;function a1(){if(qm)return $t;qm=1;var t=ac(),e=i1();function r(n){for(var o="https://reactjs.org/docs/error-d
MEDIUMapi/webui/assets/index-DvClRayq.js33 */var qm;function a1(){if(qm)return $t;qm=1;var t=ac(),e=i1();function r(n){for(var o="https://reactjs.org/docs/error-d
Decorative Section Separators2 hits · 4 pts
SeverityFileLineSnippet
MEDIUMapi/webui/assets/index-DvClRayq.js283For more information, see https://radix-ui.com/primitives/docs/components/${e.docsSlug}`;return x.useEffect(()=>{t&&(doc
MEDIUMapi/webui/assets/index-DvClRayq.js283For more information, see https://radix-ui.com/primitives/docs/components/${e.docsSlug}`;return x.useEffect(()=>{t&&(doc
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippet
LOWtools/time_util.py130 # Example usage