小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫、快手视频 | 评论爬虫、B 站视频 | 评论爬虫、微博帖子 | 评论爬虫、百度贴吧帖子 | 百度贴吧评论回复爬虫 | 知乎问答文章|评论爬虫
846 matches across 13 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | recv_sms.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | var.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | main.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | database/db.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | database/models.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | database/mongodb_store_base.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | database/__init__.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | database/db_session.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tools/crawler_util.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tools/async_file_writer.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tools/easing.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tools/__init__.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tools/utils.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tools/slider_util.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tools/words.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tools/browser_launcher.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tools/cdp_browser.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tools/app_runner.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tools/time_util.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tools/file_header_manager.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tools/file_header_manager.py | 81 | # This file is part of MediaCrawler project. |
| MEDIUM | proxy/__init__.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | proxy/types.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | proxy/proxy_mixin.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | proxy/proxy_ip_pool.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | proxy/base_proxy.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | proxy/providers/__init__.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | proxy/providers/kuaidl_proxy.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | proxy/providers/jishu_http_proxy.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | proxy/providers/wandou_http_proxy.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | cache/local_cache.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | cache/__init__.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | cache/abs_cache.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | cache/cache_factory.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | cache/redis_cache.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | test/test_utils.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | test/test_db_sync.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | test/test_expiring_local_cache.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | test/__init__.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | test/test_redis_cache.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | test/test_proxy_ip_pool.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | test/test_mongodb_integration.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | config/zhihu_config.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | config/base_config.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | config/ks_config.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | config/__init__.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | config/dy_config.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | config/tieba_config.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | config/xhs_config.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | config/db_config.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | config/weibo_config.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | config/bilibili_config.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tests/conftest.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tests/test_store_factory.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tests/test_excel_store.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | tests/test_excel_store.py | 267 | # Create an instance |
| MEDIUM | cmd_arg/__init__.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | cmd_arg/arg.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | media_platform/__init__.py | 4 | # This file is part of MediaCrawler project. |
| MEDIUM | media_platform/bilibili/field.py | 4 | # This file is part of MediaCrawler project. |
| 102 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | media_platform/bilibili/login.py | 0 | check if the current login status is successful and return true otherwise return false retry decorator will retry 20 tim |
| HIGH | media_platform/weibo/login.py | 0 | check if the current login status is successful and return true otherwise return false retry decorator will retry 20 tim |
| HIGH | media_platform/kuaishou/login.py | 0 | check if the current login status is successful and return true otherwise return false retry decorator will retry 20 tim |
| HIGH | media_platform/xhs/core.py | 0 | concurrently obtain the specified post list and save the data |
| HIGH | media_platform/douyin/core.py | 0 | concurrently obtain the specified post list and save the data |
| HIGH | media_platform/kuaishou/core.py | 0 | concurrently obtain the specified post list and save the data |
| HIGH | media_platform/weibo/core.py | 0 | get creator's information and their notes and comments returns: |
| HIGH | media_platform/tieba/core.py | 0 | get creator's information and their notes and comments returns: |
| HIGH | media_platform/zhihu/core.py | 0 | get creator's information and their notes and comments returns: |
| HIGH | store/bilibili/_store_impl.py | 0 | content json storage implementation args: content_item: returns: |
| HIGH | store/weibo/_store_impl.py | 0 | content json storage implementation args: content_item: returns: |
| HIGH | store/douyin/_store_impl.py | 0 | content json storage implementation args: content_item: returns: |
| HIGH | store/kuaishou/_store_impl.py | 0 | content json storage implementation args: content_item: returns: |
| HIGH | store/zhihu/_store_impl.py | 0 | content json storage implementation args: content_item: returns: |
| HIGH | store/bilibili/_store_impl.py | 0 | comment json storage implementation args: comment_item: returns: |
| HIGH | store/weibo/_store_impl.py | 0 | comment json storage implementation args: comment_item: returns: |
| HIGH | store/douyin/_store_impl.py | 0 | comment json storage implementation args: comment_item: returns: |
| HIGH | store/kuaishou/_store_impl.py | 0 | comment json storage implementation args: comment_item: returns: |
| HIGH | store/zhihu/_store_impl.py | 0 | comment json storage implementation args: comment_item: returns: |
| HIGH | store/bilibili/_store_impl.py | 0 | creator json storage implementation args: creator: returns: |
| HIGH | store/weibo/_store_impl.py | 0 | creator json storage implementation args: creator: returns: |
| HIGH | store/douyin/_store_impl.py | 0 | creator json storage implementation args: creator: returns: |
| HIGH | store/bilibili/_store_impl.py | 0 | store video content to mongodb args: content_item: video content data |
| HIGH | store/douyin/_store_impl.py | 0 | store video content to mongodb args: content_item: video content data |
| HIGH | store/kuaishou/_store_impl.py | 0 | store video content to mongodb args: content_item: video content data |
| HIGH | store/bilibili/_store_impl.py | 0 | store comment to mongodb args: comment_item: comment data |
| HIGH | store/xhs/_store_impl.py | 0 | store comment to mongodb args: comment_item: comment data |
| HIGH | store/weibo/_store_impl.py | 0 | store comment to mongodb args: comment_item: comment data |
| HIGH | store/tieba/_store_impl.py | 0 | store comment to mongodb args: comment_item: comment data |
| HIGH | store/douyin/_store_impl.py | 0 | store comment to mongodb args: comment_item: comment data |
| HIGH | store/kuaishou/_store_impl.py | 0 | store comment to mongodb args: comment_item: comment data |
| HIGH | store/zhihu/_store_impl.py | 0 | store comment to mongodb args: comment_item: comment data |
| HIGH | store/xhs/_store_impl.py | 0 | store creator information to mongodb args: creator_item: creator data |
| HIGH | store/weibo/_store_impl.py | 0 | store creator information to mongodb args: creator_item: creator data |
| HIGH | store/tieba/_store_impl.py | 0 | store creator information to mongodb args: creator_item: creator data |
| HIGH | store/douyin/_store_impl.py | 0 | store creator information to mongodb args: creator_item: creator data |
| HIGH | store/kuaishou/_store_impl.py | 0 | store creator information to mongodb args: creator_item: creator data |
| HIGH | store/zhihu/_store_impl.py | 0 | store creator information to mongodb args: creator_item: creator data |
| HIGH | store/weibo/_store_impl.py | 0 | calculate the prefix sorting number for data save files, supporting writing to different files for each run args: file_s |
| HIGH | store/tieba/_store_impl.py | 0 | calculate the prefix sorting number for data save files, supporting writing to different files for each run args: file_s |
| HIGH | store/kuaishou/_store_impl.py | 0 | calculate the prefix sorting number for data save files, supporting writing to different files for each run args: file_s |
| HIGH | store/zhihu/_store_impl.py | 0 | calculate the prefix sorting number for data save files, supporting writing to different files for each run args: file_s |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | recv_sms.py | 1 | # -*- coding: utf-8 -*- |
| LOW | var.py | 1 | # -*- coding: utf-8 -*- |
| LOW | main.py | 1 | # -*- coding: utf-8 -*- |
| LOW | database/db.py | 1 | # -*- coding: utf-8 -*- |
| LOW | database/models.py | 1 | # -*- coding: utf-8 -*- |
| LOW | database/mongodb_store_base.py | 1 | # -*- coding: utf-8 -*- |
| LOW | database/__init__.py | 1 | # -*- coding: utf-8 -*- |
| LOW | database/db_session.py | 1 | # -*- coding: utf-8 -*- |
| LOW | tools/crawler_util.py | 1 | # -*- coding: utf-8 -*- |
| LOW | tools/async_file_writer.py | 1 | # -*- coding: utf-8 -*- |
| LOW | tools/easing.py | 1 | # -*- coding: utf-8 -*- |
| LOW | tools/__init__.py | 1 | # -*- coding: utf-8 -*- |
| LOW | tools/utils.py | 1 | # -*- coding: utf-8 -*- |
| LOW | tools/slider_util.py | 1 | # -*- coding: utf-8 -*- |
| LOW | tools/words.py | 1 | # -*- coding: utf-8 -*- |
| LOW | tools/browser_launcher.py | 1 | # -*- coding: utf-8 -*- |
| LOW | tools/cdp_browser.py | 1 | # -*- coding: utf-8 -*- |
| LOW | tools/app_runner.py | 1 | # -*- coding: utf-8 -*- |
| LOW | tools/time_util.py | 1 | # -*- coding: utf-8 -*- |
| LOW | tools/file_header_manager.py | 1 | # -*- coding: utf-8 -*- |
| LOW | proxy/__init__.py | 1 | # -*- coding: utf-8 -*- |
| LOW | proxy/__init__.py | 21 | # -*- coding: utf-8 -*- |
| LOW | proxy/types.py | 1 | # -*- coding: utf-8 -*- |
| LOW | proxy/proxy_mixin.py | 1 | # -*- coding: utf-8 -*- |
| LOW | proxy/proxy_ip_pool.py | 1 | # -*- coding: utf-8 -*- |
| LOW | proxy/base_proxy.py | 1 | # -*- coding: utf-8 -*- |
| LOW | proxy/providers/__init__.py | 1 | # -*- coding: utf-8 -*- |
| LOW | proxy/providers/kuaidl_proxy.py | 1 | # -*- coding: utf-8 -*- |
| LOW | proxy/providers/jishu_http_proxy.py | 1 | # -*- coding: utf-8 -*- |
| LOW | proxy/providers/wandou_http_proxy.py | 1 | # -*- coding: utf-8 -*- |
| LOW | cache/local_cache.py | 1 | # -*- coding: utf-8 -*- |
| LOW | cache/__init__.py | 1 | # -*- coding: utf-8 -*- |
| LOW | cache/abs_cache.py | 1 | # -*- coding: utf-8 -*- |
| LOW | cache/cache_factory.py | 1 | # -*- coding: utf-8 -*- |
| LOW | cache/redis_cache.py | 1 | # -*- coding: utf-8 -*- |
| LOW | test/test_utils.py | 1 | # -*- coding: utf-8 -*- |
| LOW | test/test_db_sync.py | 1 | # -*- coding: utf-8 -*- |
| LOW | test/test_db_sync.py | 221 | # [*] Changed tables: |
| LOW | test/test_db_sync.py | 241 | # >>> Manual confirmation required: Synchronize ORM model to MySQL database? (y/N): y |
| LOW | test/test_expiring_local_cache.py | 1 | # -*- coding: utf-8 -*- |
| LOW | test/__init__.py | 1 | # -*- coding: utf-8 -*- |
| LOW | test/test_redis_cache.py | 1 | # -*- coding: utf-8 -*- |
| LOW | test/test_proxy_ip_pool.py | 1 | # -*- coding: utf-8 -*- |
| LOW | test/test_mongodb_integration.py | 1 | # -*- coding: utf-8 -*- |
| LOW | config/zhihu_config.py | 1 | # -*- coding: utf-8 -*- |
| LOW | config/base_config.py | 1 | # -*- coding: utf-8 -*- |
| LOW | config/base_config.py | 41 | |
| LOW | config/base_config.py | 61 | # CDP 调试端口,用于与浏览器通信 |
| LOW | config/ks_config.py | 1 | # -*- coding: utf-8 -*- |
| LOW | config/__init__.py | 1 | # -*- coding: utf-8 -*- |
| LOW | config/dy_config.py | 1 | # -*- coding: utf-8 -*- |
| LOW | config/dy_config.py | 21 | PUBLISH_TIME_TYPE = 0 |
| LOW | config/tieba_config.py | 1 | # -*- coding: utf-8 -*- |
| LOW | config/xhs_config.py | 1 | # -*- coding: utf-8 -*- |
| LOW | config/db_config.py | 1 | # -*- coding: utf-8 -*- |
| LOW | config/weibo_config.py | 1 | # -*- coding: utf-8 -*- |
| LOW | config/bilibili_config.py | 1 | # -*- coding: utf-8 -*- |
| LOW | tests/conftest.py | 1 | # -*- coding: utf-8 -*- |
| LOW | tests/test_store_factory.py | 1 | # -*- coding: utf-8 -*- |
| LOW | tests/__init__.py | 1 | # -*- coding: utf-8 -*- |
| 102 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | recv_sms.py | 46 | def extract_verification_code(message: str) -> str: |
| LOW | main.py | 86 | async def _generate_wordcloud_if_needed() -> None: |
| LOW | database/db_session.py | 31 | async def create_database_if_not_exists(db_type: str): |
| LOW | tools/crawler_util.py | 66 | async def find_qrcode_img_from_canvas(page: Page, canvas_selector: str) -> str: |
| LOW | tools/crawler_util.py | 148 | async def convert_browser_context_cookies( |
| LOW | tools/crawler_util.py | 159 | def convert_str_cookie_to_dict(cookie_str: str) -> Dict: |
| LOW | tools/crawler_util.py | 177 | def match_interact_info_count(count_str: str) -> int: |
| LOW | tools/crawler_util.py | 226 | def extract_url_params_to_dict(url: str) -> Dict: |
| LOW | tools/async_file_writer.py | 62 | async def write_single_item_to_json(self, item: Dict, item_type: str): |
| LOW | tools/async_file_writer.py | 82 | async def generate_wordcloud_from_comments(self): |
| LOW | tools/words.py | 50 | async def generate_word_frequency_and_cloud(self, data, save_words_prefix): |
| LOW | tools/cdp_browser.py | 47 | def _register_cleanup_handlers(self): |
| LOW | tools/cdp_browser.py | 140 | async def _connect_existing_browser( |
| LOW | tools/cdp_browser.py | 288 | async def _get_browser_websocket_url(self, debug_port: int) -> str: |
| LOW | tools/time_util.py | 60 | def get_time_str_from_unix_time(unixtime): |
| LOW | tools/time_util.py | 71 | def get_date_str_from_unix_time(unixtime): |
| LOW | tools/time_util.py | 82 | def get_unix_time_from_time_str(time_str): |
| LOW | tools/file_header_manager.py | 67 | def generate_copyright_header(relative_path: str) -> str: |
| LOW | proxy/proxy_mixin.py | 57 | async def _refresh_proxy_if_expired(self) -> None: |
| LOW | test/test_utils.py | 38 | async def test_convert_browser_context_cookies_uses_url_filter(): |
| LOW | test/test_proxy_ip_pool.py | 94 | async def test_proxy_pool_auto_refresh(self): |
| LOW | test/test_proxy_ip_pool.py | 136 | async def test_ip_expiration_standalone(self): |
| LOW | test/test_mongodb_integration.py | 222 | def test_xhs_store_implementation(self): |
| LOW | test/test_mongodb_integration.py | 274 | def test_douyin_store_implementation(self): |
| LOW | test/test_mongodb_integration.py | 319 | def test_concurrent_operations(self): |
| LOW | tests/test_cmd_arg_tieba.py | 10 | async def test_tieba_detail_cli_sets_specified_ids(): |
| LOW | tests/test_cmd_arg_tieba.py | 26 | async def test_tieba_creator_cli_sets_creator_urls(): |
| LOW | tests/test_cmd_arg_tieba.py | 45 | async def test_tieba_detail_reads_runtime_specified_ids(monkeypatch): |
| LOW | tests/test_store_factory.py | 66 | def test_create_mongodb_store(self): |
| LOW | tests/test_store_factory.py | 85 | def test_invalid_store_option(self): |
| LOW | tests/test_store_factory.py | 92 | def test_all_stores_registered(self): |
| LOW | tests/test_static_proxy_provider.py | 9 | def test_default_proxy_provider_remains_existing_provider(): |
| LOW | tests/test_static_proxy_provider.py | 16 | async def test_static_proxy_provider_parses_proxy_url(monkeypatch): |
| LOW | tests/test_static_proxy_provider.py | 32 | async def test_static_proxy_provider_rejects_invalid_url(monkeypatch): |
| LOW | tests/test_static_proxy_provider.py | 41 | async def test_static_proxy_pool_disables_validation(monkeypatch): |
| LOW | tests/test_api_limits.py | 12 | async def test_cmd_arg_crawler_max_notes_count(): |
| LOW | tests/test_api_limits.py | 29 | def test_crawler_manager_build_command(): |
| LOW | tests/test_api_limits.py | 65 | def test_api_start_crawler_with_limits(): |
| LOW | tests/test_api_limits.py | 90 | def test_api_start_crawler_without_limits(): |
| LOW | tests/test_api_limits.py | 123 | def test_api_rejects_invalid_limits(field_name, value): |
| LOW | tests/test_excel_store.py | 173 | def test_empty_sheets_removed(self, excel_store): |
| LOW | tests/test_excel_store.py | 191 | def test_excel_import_availability(): |
| LOW | tests/test_excel_store.py | 213 | def test_get_instance_returns_same_instance(self): |
| LOW | tests/test_excel_store.py | 220 | def test_get_instance_different_params_returns_different_instances(self): |
| LOW | tests/test_excel_store.py | 231 | async def test_singleton_preserves_data(self): |
| LOW | tests/test_excel_store.py | 245 | def test_flush_all_saves_all_instances(self, tmp_path): |
| LOW | tests/test_excel_store.py | 265 | def test_flush_all_clears_instances(self): |
| LOW | tests/test_tieba_extractor.py | 16 | def test_extract_search_note_list_from_keyword_page(): |
| LOW | tests/test_tieba_extractor.py | 26 | def test_extract_search_note_list_from_current_pc_card_page(): |
| LOW | tests/test_tieba_extractor.py | 64 | def test_extract_search_note_list_from_current_pc_api(): |
| LOW | tests/test_tieba_extractor.py | 101 | def test_extract_note_detail_and_comments_from_current_pc_api(): |
| LOW | tests/test_tieba_extractor.py | 163 | def test_extract_creator_info_and_threads_from_current_pc_api(): |
| LOW | tests/test_tieba_extractor.py | 204 | def test_extract_tieba_note_list_from_current_frs_api(): |
| LOW | tests/test_tieba_extractor.py | 222 | def test_extract_tieba_note_list_from_bigpipe_thread_page(): |
| LOW | tests/test_tieba_extractor.py | 233 | def test_extract_note_detail_from_post_page(): |
| LOW | tests/test_tieba_extractor.py | 245 | def test_extract_parent_comments_from_post_page(): |
| LOW | tests/test_tieba_extractor.py | 259 | def test_extract_sub_comments_with_class_token_matching(): |
| LOW | tests/test_tieba_client_pagination.py | 14 | async def test_search_uses_requested_page_number(): |
| LOW | tests/test_tieba_client_pagination.py | 31 | async def test_comments_walk_pages_until_total_reply_page(): |
| LOW | tests/test_tieba_client_pagination.py | 70 | async def test_creator_feed_walks_until_has_more_false(monkeypatch): |
| 96 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | main.py | 32 | |
| LOW | database/db.py | 23 | |
| LOW | database/models.py | 19 | |
| LOW | database/models.py | 21 | |
| LOW | tools/crawler_util.py | 27 | |
| LOW | tools/crawler_util.py | 35 | |
| LOW | tools/async_file_writer.py | 24 | |
| LOW | tools/utils.py | 24 | |
| LOW | tools/utils.py | 25 | |
| LOW | tools/utils.py | 26 | |
| LOW | tools/browser_launcher.py | 28 | |
| LOW | tools/browser_launcher.py | 29 | |
| LOW | tools/app_runner.py | 21 | |
| LOW | proxy/__init__.py | 25 | |
| LOW | proxy/proxy_mixin.py | 31 | |
| LOW | proxy/proxy_ip_pool.py | 29 | |
| LOW | proxy/providers/__init__.py | 25 | |
| LOW | proxy/providers/__init__.py | 26 | |
| LOW | proxy/providers/__init__.py | 27 | |
| LOW | proxy/providers/kuaidl_proxy.py | 29 | |
| LOW | proxy/providers/jishu_http_proxy.py | 28 | |
| LOW | proxy/providers/wandou_http_proxy.py | 28 | |
| LOW | test/test_db_sync.py | 27 | |
| LOW | config/base_config.py | 143 | |
| LOW | config/base_config.py | 144 | |
| LOW | config/base_config.py | 145 | |
| LOW | config/base_config.py | 146 | |
| LOW | config/base_config.py | 147 | |
| LOW | config/base_config.py | 148 | |
| LOW | config/base_config.py | 149 | |
| LOW | config/__init__.py | 21 | |
| LOW | config/__init__.py | 22 | |
| LOW | tests/test_store_factory.py | 24 | |
| LOW | tests/test_excel_store.py | 25 | |
| LOW | tests/test_excel_store.py | 26 | |
| LOW | cmd_arg/__init__.py | 21 | |
| LOW | cmd_arg/arg.py | 21 | |
| LOW | media_platform/bilibili/client.py | 40 | |
| LOW | media_platform/bilibili/__init__.py | 26 | |
| LOW | media_platform/xhs/client.py | 23 | |
| LOW | media_platform/xhs/client.py | 36 | |
| LOW | media_platform/xhs/__init__.py | 21 | |
| LOW | media_platform/xhs/__init__.py | 22 | |
| LOW | media_platform/weibo/client.py | 43 | |
| LOW | media_platform/weibo/__init__.py | 25 | |
| LOW | media_platform/weibo/__init__.py | 26 | |
| LOW | media_platform/weibo/__init__.py | 27 | |
| LOW | media_platform/weibo/core.py | 29 | |
| LOW | media_platform/tieba/__init__.py | 22 | |
| LOW | media_platform/tieba/core.py | 24 | |
| LOW | media_platform/douyin/client.py | 38 | |
| LOW | media_platform/douyin/client.py | 39 | |
| LOW | media_platform/douyin/client.py | 40 | |
| LOW | media_platform/douyin/client.py | 36 | |
| LOW | media_platform/douyin/__init__.py | 21 | |
| LOW | media_platform/douyin/core.py | 24 | |
| LOW | media_platform/douyin/help.py | 29 | |
| LOW | media_platform/kuaishou/client.py | 27 | |
| LOW | media_platform/kuaishou/client.py | 37 | |
| LOW | media_platform/kuaishou/__init__.py | 22 | |
| 82 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | main.py | 82 | except Exception as e: |
| LOW | main.py | 96 | except Exception as e: |
| LOW | main.py | 125 | except Exception as e: |
| LOW | main.py | 133 | except Exception as e: |
| LOW | main.py | 154 | except Exception: |
| LOW | database/mongodb_store_base.py | 75 | except Exception as e: |
| LOW | database/mongodb_store_base.py | 111 | except Exception as e: |
| LOW | database/mongodb_store_base.py | 120 | except Exception as e: |
| LOW | database/mongodb_store_base.py | 132 | except Exception as e: |
| LOW | database/mongodb_store_base.py | 142 | except Exception as e: |
| LOW | database/db_session.py | 98 | except Exception as e: |
| LOW | tools/crawler_util.py | 61 | except Exception as e: |
| LOW | tools/async_file_writer.py | 146 | except Exception as e: |
| LOW | tools/browser_launcher.py | 187 | except Exception as e: |
| LOW | tools/browser_launcher.py | 206 | except Exception: |
| LOW | tools/browser_launcher.py | 238 | except Exception: |
| LOW | tools/browser_launcher.py | 288 | except Exception as e: |
| LOW | tools/cdp_browser.py | 135 | except Exception as e: |
| LOW | tools/cdp_browser.py | 246 | except Exception as e: |
| LOW | tools/cdp_browser.py | 309 | except Exception as e: |
| LOW | tools/cdp_browser.py | 344 | except Exception as e: |
| LOW | tools/cdp_browser.py | 398 | except Exception as e: |
| LOW | tools/cdp_browser.py | 409 | except Exception as e: |
| LOW | tools/cdp_browser.py | 420 | except Exception as e: |
| LOW | tools/cdp_browser.py | 445 | except Exception as context_error: |
| LOW | tools/cdp_browser.py | 466 | except Exception as browser_error: |
| LOW | tools/cdp_browser.py | 495 | except Exception as e: |
| LOW | tools/cdp_browser.py | 521 | except Exception as e: |
| LOW | tools/app_runner.py | 82 | except Exception: |
| LOW | tools/app_runner.py | 102 | except Exception as e: |
| LOW | tools/time_util.py | 92 | except Exception as e: |
| LOW | tools/file_header_manager.py | 209 | except Exception as e: |
| LOW | proxy/proxy_ip_pool.py | 93 | except Exception as e: |
| LOW | proxy/proxy_ip_pool.py | 186 | except Exception as e: |
| LOW | proxy/base_proxy.py | 82 | except Exception as e: |
| LOW | test/test_db_sync.py | 196 | except Exception as e: |
| MEDIUM | test/test_db_sync.py | 197 | print(f"Error processing MySQL: {e}") |
| LOW | test/test_db_sync.py | 213 | except Exception as e: |
| MEDIUM | test/test_db_sync.py | 214 | print(f"Error processing SQLite: {e}") |
| LOW | test/test_mongodb_integration.py | 42 | except Exception as e: |
| LOW | test/test_mongodb_integration.py | 86 | except Exception as e: |
| MEDIUM | test/test_mongodb_integration.py | 36 | def setUpClass(cls): |
| LOW | media_platform/bilibili/client.py | 144 | except Exception as e: |
| LOW | media_platform/bilibili/core.py | 223 | except Exception as e: |
| LOW | media_platform/bilibili/core.py | 321 | except Exception as e: |
| LOW | media_platform/bilibili/core.py | 365 | except Exception as e: |
| LOW | media_platform/bilibili/core.py | 552 | except Exception as e: |
| LOW | media_platform/bilibili/core.py | 570 | except Exception as e: |
| LOW | media_platform/bilibili/core.py | 635 | except Exception as e: |
| LOW | media_platform/bilibili/core.py | 679 | except Exception as e: |
| LOW | media_platform/bilibili/core.py | 702 | except Exception as e: |
| LOW | media_platform/bilibili/core.py | 725 | except Exception as e: |
| LOW | media_platform/xhs/client.py | 256 | except Exception as e: |
| LOW | media_platform/xhs/client.py | 527 | except Exception as e: |
| LOW | media_platform/xhs/client.py | 532 | except Exception as e: |
| LOW | media_platform/xhs/core.py | 446 | except Exception as e: |
| LOW | media_platform/xhs/login.py | 68 | except Exception: |
| LOW | media_platform/xhs/login.py | 117 | except Exception as e: |
| LOW | media_platform/xhs/help.py | 368 | except Exception as e: |
| LOW | media_platform/weibo/client.py | 129 | except Exception as e: |
| 49 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | main.py | 119 | |
| LOW | tools/async_file_writer.py | 82 | |
| LOW | tools/slider_util.py | 84 | |
| LOW | tools/browser_launcher.py | 191 | |
| LOW | tools/browser_launcher.py | 214 | |
| LOW | tools/browser_launcher.py | 241 | |
| LOW | tools/cdp_browser.py | 425 | |
| LOW | cache/redis_cache.py | 77 | |
| LOW | test/test_db_sync.py | 101 | |
| LOW | test/test_db_sync.py | 133 | |
| LOW | cmd_arg/arg.py | 154 | |
| LOW | cmd_arg/arg.py | 160 | |
| LOW | media_platform/bilibili/client.py | 260 | |
| LOW | media_platform/bilibili/core.py | 70 | |
| LOW | media_platform/bilibili/core.py | 183 | |
| LOW | media_platform/bilibili/core.py | 240 | |
| LOW | media_platform/xhs/playwright_sign.py | 72 | |
| LOW | media_platform/xhs/client.py | 456 | |
| LOW | media_platform/xhs/core.py | 129 | |
| LOW | media_platform/weibo/core.py | 137 | |
| LOW | media_platform/weibo/help.py | 29 | |
| LOW | media_platform/tieba/client.py | 516 | |
| LOW | media_platform/tieba/core.py | 148 | |
| LOW | media_platform/tieba/core.py | 402 | |
| LOW | media_platform/tieba/help.py | 303 | |
| LOW | media_platform/douyin/client.py | 253 | |
| LOW | media_platform/douyin/core.py | 127 | |
| LOW | media_platform/douyin/core.py | 183 | |
| LOW | media_platform/zhihu/core.py | 150 | |
| LOW | media_platform/zhihu/help.py | 76 | |
| LOW | api/routers/data.py | 33 | |
| LOW | api/routers/data.py | 62 | |
| LOW | api/routers/data.py | 99 | |
| LOW | api/routers/data.py | 191 | |
| LOW | api/routers/websocket.py | 90 | |
| LOW | api/services/crawler_manager.py | 80 | |
| LOW | api/services/crawler_manager.py | 241 | |
| LOW | store/excel_store_base.py | 171 | |
| LOW | store/xhs/__init__.py | 184 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | database/db_session.py | 46 | # Check if database exists |
| LOW | tools/browser_launcher.py | 97 | # Check if path exists and is executable |
| LOW | tools/cdp_browser.py | 436 | # Check if context is already closed |
| LOW | tools/cdp_browser.py | 460 | # Check if browser is still connected |
| LOW | tools/file_header_manager.py | 100 | # Check if contains Copyright keyword |
| LOW | tools/file_header_manager.py | 130 | # Check if first line is shebang |
| LOW | media_platform/bilibili/client.py | 70 | # Check if proxy has expired before each request |
| LOW | media_platform/bilibili/client.py | 307 | # Check if is_end and next exist |
| LOW | media_platform/bilibili/core.py | 177 | end_day = (start_day + timedelta(days=1) - timedelta(seconds=1)) # Set end_day to start_day + 1 day - 1 sec |
| LOW | media_platform/bilibili/core.py | 179 | end_day = (end_day + timedelta(days=1) - timedelta(seconds=1)) # Set end_day to end_day + 1 day - 1 second |
| LOW | media_platform/xhs/client.py | 127 | # Check if proxy is expired before each request |
| LOW | media_platform/xhs/client.py | 208 | # Check if proxy is expired before request |
| LOW | media_platform/weibo/client.py | 74 | # Check if proxy is expired before each request |
| LOW | media_platform/weibo/core.py | 435 | # Check if it's a long text |
| LOW | media_platform/tieba/client.py | 250 | # Check if proxy is expired before each request |
| LOW | media_platform/douyin/login.py | 150 | # Check if there is slider verification |
| LOW | media_platform/douyin/help.py | 121 | # Check if it's a short link (v.douyin.com) |
| LOW | media_platform/kuaishou/client.py | 67 | # Check if proxy is expired before each request |
| LOW | media_platform/zhihu/client.py | 97 | # Check if proxy is expired before each request |
| LOW | store/excel_store_base.py | 373 | # Check if there are any sheets left |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | media_platform/tieba/core.py | 502 | get: () => undefined, |
| HIGH | media_platform/douyin/help.py | 95 | "([params, post_data, ua]) => window.bdms.init._v[2].p[42].apply(null, [0, 1, 8, params, post_data, ua])", |
| HIGH | api/main.py | 75 | "note": "WebUI not found, please build it first: cd webui && npm run build" |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | media_platform/tieba/core.py | 415 | # Step 1: Visit Baidu homepage |
| LOW | media_platform/tieba/core.py | 419 | # Step 2: Wait for page loading, using delay setting from config file |
| LOW | media_platform/tieba/core.py | 423 | # Step 3: Find and click "Tieba" link |
| LOW | media_platform/tieba/core.py | 479 | # Step 5: Wait for page to stabilize, using delay setting from config file |
| LOW | media_platform/tieba/core.py | 449 | # Step 4: Click Tieba link (check if it will open in a new tab) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | package-lock.json | 3425 | "resolved": "https://registry.npmmirror.com/robust-predicates/-/robust-predicates-3.0.2.tgz", |
| MEDIUM | api/webui/assets/index-DvClRayq.js | 33 | */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 |
| MEDIUM | api/webui/assets/index-DvClRayq.js | 33 | */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 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | api/webui/assets/index-DvClRayq.js | 283 | For more information, see https://radix-ui.com/primitives/docs/components/${e.docsSlug}`;return x.useEffect(()=>{t&&(doc |
| MEDIUM | api/webui/assets/index-DvClRayq.js | 283 | For more information, see https://radix-ui.com/primitives/docs/components/${e.docsSlug}`;return x.useEffect(()=>{t&&(doc |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tools/time_util.py | 130 | # Example usage |