├── .editorconfig ├── .env ├── .gitignore ├── .prettierignore ├── .prettierrc ├── docs ├── .vuepress │ ├── components │ │ ├── ApiDoc.vue │ │ ├── Card.vue │ │ ├── CardList.vue │ │ ├── Redirect.vue │ │ └── SlideList.vue │ ├── config.ts │ ├── dist │ │ ├── 404.html │ │ ├── assets │ │ │ ├── 404.html-57a877d7.js │ │ │ ├── 404.html-8a42c25a.js │ │ │ ├── ApiDoc-561eb16a.js │ │ │ ├── Card-75f75c66.js │ │ │ ├── CardList-d2737492.js │ │ │ ├── Redirect-c6e67f4f.js │ │ │ ├── SlideList-bc4af83b.js │ │ │ ├── api-reference.html-5ff89c56.js │ │ │ ├── api-reference.html-65266e04.js │ │ │ ├── api-reference.html-8ee404e3.js │ │ │ ├── api-reference.html-bed9677d.js │ │ │ ├── app-631a5bec.js │ │ │ ├── arc-26711873.js │ │ │ ├── array-9f3ba611.js │ │ │ ├── c4Diagram-44c43e89-fde5d82c.js │ │ │ ├── classDiagram-634fc78b-47cd4b8d.js │ │ │ ├── classDiagram-v2-72bddc41-d9d6d2b9.js │ │ │ ├── commonjsHelpers-725317a4.js │ │ │ ├── crawlab-architecture-698601e4.png │ │ │ ├── createText-1f5f8f92-13e0bd8e.js │ │ │ ├── data-sources-menu-bff4f430.png │ │ │ ├── deps-list-04669173.png │ │ │ ├── deps-list-1c13578c.png │ │ │ ├── direct-deploy.html-753fc64a.js │ │ │ ├── direct-deploy.html-b88cc414.js │ │ │ ├── direct-deploy.html-d5ace841.js │ │ │ ├── direct-deploy.html-f9dd8390.js │ │ │ ├── docker.html-27b19b03.js │ │ │ ├── docker.html-3a769c8c.js │ │ │ ├── docker.html-9ecfbb50.js │ │ │ ├── docker.html-a61e9de3.js │ │ │ ├── edges-2e77835f-0921c07f.js │ │ │ ├── email-config-7a413924.png │ │ │ ├── email-config-ab32042d.png │ │ │ ├── erDiagram-20cc9db4-d748b812.js │ │ │ ├── file-editor-a842b300.png │ │ │ ├── file-editor.html-70e3df02.js │ │ │ ├── file-editor.html-90ee605a.js │ │ │ ├── file-editor.html-d74cf1cc.js │ │ │ ├── file-editor.html-f92ba876.js │ │ │ ├── file-management-1145ded8.png │ │ │ ├── files-sidebar-6856726a.png │ │ │ ├── files-sidebar-a703b22b.png │ │ │ ├── flowDb-52e24d17-10223c6c.js │ │ │ ├── flowDiagram-46a15f6f-b26abb12.js │ │ │ ├── flowDiagram-v2-8e52592d-0ebac1d7.js │ │ │ ├── flowchart-elk-definition-a44a74cb-b3b5dc84.js │ │ │ ├── framework-64cb0dab.js │ │ │ ├── ganttDiagram-04e74c0a-036eb6e4.js │ │ │ ├── git.html-00c48300.js │ │ │ ├── git.html-0c93f525.js │ │ │ ├── git.html-24e448c5.js │ │ │ ├── git.html-73a76b10.js │ │ │ ├── gitGraphDiagram-0a645df6-63801f29.js │ │ │ ├── images │ │ │ │ ├── beian-logo.png │ │ │ │ └── screenshots │ │ │ │ │ ├── screenshot-email-notifications.png │ │ │ │ │ ├── screenshot-git-logs.png │ │ │ │ │ ├── screenshot-home.png │ │ │ │ │ ├── screenshot-login.png │ │ │ │ │ ├── screenshot-mobile-notifications.png │ │ │ │ │ ├── screenshot-node-list.png │ │ │ │ │ ├── screenshot-plugin-dependency.png │ │ │ │ │ ├── screenshot-plugin-list.png │ │ │ │ │ ├── screenshot-plugin-spider-assistant.png │ │ │ │ │ ├── screenshot-project-list.png │ │ │ │ │ ├── screenshot-schedule-create.png │ │ │ │ │ ├── screenshot-schedule-detail-overview.png │ │ │ │ │ ├── screenshot-spider-detail-files.png │ │ │ │ │ ├── screenshot-spider-detail-overview.png │ │ │ │ │ ├── screenshot-spider-list-columns-customization.png │ │ │ │ │ ├── screenshot-spider-list.png │ │ │ │ │ ├── screenshot-task-detail-data.png │ │ │ │ │ ├── screenshot-task-detail-logs.png │ │ │ │ │ └── screenshot-task-list.png │ │ │ ├── img │ │ │ │ ├── guide │ │ │ │ │ └── use-crawlab │ │ │ │ │ │ └── img │ │ │ │ │ │ ├── quick-tutorial-1.png │ │ │ │ │ │ ├── quick-tutorial-10.png │ │ │ │ │ │ ├── quick-tutorial-2.png │ │ │ │ │ │ ├── quick-tutorial-3.png │ │ │ │ │ │ ├── quick-tutorial-4.png │ │ │ │ │ │ ├── quick-tutorial-5.png │ │ │ │ │ │ ├── quick-tutorial-6.png │ │ │ │ │ │ ├── quick-tutorial-7.png │ │ │ │ │ │ ├── quick-tutorial-8.png │ │ │ │ │ │ └── quick-tutorial-9.png │ │ │ │ ├── logo-150x150.png │ │ │ │ ├── logo.svg │ │ │ │ ├── principle │ │ │ │ │ └── architecture │ │ │ │ │ │ └── img │ │ │ │ │ │ └── crawlab-architecture.png │ │ │ │ ├── quick-tutorial-1.png │ │ │ │ ├── screenshots │ │ │ │ │ ├── screenshot-email-notifications.png │ │ │ │ │ ├── screenshot-git-logs.png │ │ │ │ │ ├── screenshot-home.png │ │ │ │ │ ├── screenshot-login.png │ │ │ │ │ ├── screenshot-mobile-notifications.png │ │ │ │ │ ├── screenshot-node-list.png │ │ │ │ │ ├── screenshot-plugin-dependency.png │ │ │ │ │ ├── screenshot-plugin-list.png │ │ │ │ │ ├── screenshot-plugin-spider-assistant.png │ │ │ │ │ ├── screenshot-project-list.png │ │ │ │ │ ├── screenshot-schedule-create.png │ │ │ │ │ ├── screenshot-schedule-detail-overview.png │ │ │ │ │ ├── screenshot-spider-detail-files.png │ │ │ │ │ ├── screenshot-spider-detail-overview.png │ │ │ │ │ ├── screenshot-spider-list-columns-customization.png │ │ │ │ │ ├── screenshot-spider-list.png │ │ │ │ │ ├── screenshot-task-detail-data.png │ │ │ │ │ ├── screenshot-task-detail-logs.png │ │ │ │ │ └── screenshot-task-list.png │ │ │ │ └── zh │ │ │ │ │ └── guide │ │ │ │ │ └── use-crawlab │ │ │ │ │ └── img │ │ │ │ │ ├── quick-tutorial-1.png │ │ │ │ │ ├── quick-tutorial-10.png │ │ │ │ │ ├── quick-tutorial-2.png │ │ │ │ │ ├── quick-tutorial-3.png │ │ │ │ │ ├── quick-tutorial-4.png │ │ │ │ │ ├── quick-tutorial-5.png │ │ │ │ │ ├── quick-tutorial-6.png │ │ │ │ │ ├── quick-tutorial-7.png │ │ │ │ │ ├── quick-tutorial-8.png │ │ │ │ │ └── quick-tutorial-9.png │ │ │ ├── index-5219d011-2dee359b.js │ │ │ ├── index.html-02afe828.js │ │ │ ├── index.html-06104d8e.js │ │ │ ├── index.html-0640701d.js │ │ │ ├── index.html-0834fcc1.js │ │ │ ├── index.html-087edc9f.js │ │ │ ├── index.html-0916704b.js │ │ │ ├── index.html-092dce8e.js │ │ │ ├── index.html-0c740b9e.js │ │ │ ├── index.html-0e5ac8a3.js │ │ │ ├── index.html-0ff90bed.js │ │ │ ├── index.html-137425d6.js │ │ │ ├── index.html-15137e2b.js │ │ │ ├── index.html-153bb09d.js │ │ │ ├── index.html-1629899a.js │ │ │ ├── index.html-1641eeda.js │ │ │ ├── index.html-16b7b1c7.js │ │ │ ├── index.html-18aa5aaa.js │ │ │ ├── index.html-18fa417a.js │ │ │ ├── index.html-1be889ce.js │ │ │ ├── index.html-1e0469ff.js │ │ │ ├── index.html-1e856439.js │ │ │ ├── index.html-1fad8705.js │ │ │ ├── index.html-2548fe36.js │ │ │ ├── index.html-2676e32a.js │ │ │ ├── index.html-276d26d6.js │ │ │ ├── index.html-28c927cf.js │ │ │ ├── index.html-28edcee9.js │ │ │ ├── index.html-2a5cfdca.js │ │ │ ├── index.html-2aa7b8e3.js │ │ │ ├── index.html-2e7b3562.js │ │ │ ├── index.html-2f986041.js │ │ │ ├── index.html-3103cf8d.js │ │ │ ├── index.html-31961f15.js │ │ │ ├── index.html-33eaa07a.js │ │ │ ├── index.html-355f4bfb.js │ │ │ ├── index.html-367152ee.js │ │ │ ├── index.html-37c4a74f.js │ │ │ ├── index.html-39e437ad.js │ │ │ ├── index.html-3d393db8.js │ │ │ ├── index.html-3d849014.js │ │ │ ├── index.html-3de8c182.js │ │ │ ├── index.html-3f208094.js │ │ │ ├── index.html-3f72f294.js │ │ │ ├── index.html-3fcfcd91.js │ │ │ ├── index.html-4014cc97.js │ │ │ ├── index.html-4028ed1d.js │ │ │ ├── index.html-4085d2b8.js │ │ │ ├── index.html-4453ac11.js │ │ │ ├── index.html-454a7ac4.js │ │ │ ├── index.html-47dd9bc8.js │ │ │ ├── index.html-48460ec6.js │ │ │ ├── index.html-486b9c33.js │ │ │ ├── index.html-489f7cfd.js │ │ │ ├── index.html-4a44389b.js │ │ │ ├── index.html-55c028bc.js │ │ │ ├── index.html-57bd1c3b.js │ │ │ ├── index.html-58ddd963.js │ │ │ ├── index.html-58e489b2.js │ │ │ ├── index.html-59f4c84b.js │ │ │ ├── index.html-5d94a724.js │ │ │ ├── index.html-5d9e0a3a.js │ │ │ ├── index.html-5db672e4.js │ │ │ ├── index.html-5f001c46.js │ │ │ ├── index.html-5f71caf1.js │ │ │ ├── index.html-66b33f13.js │ │ │ ├── index.html-66b6a347.js │ │ │ ├── index.html-6701c989.js │ │ │ ├── index.html-6899aa04.js │ │ │ ├── index.html-6992020b.js │ │ │ ├── index.html-6c763bcd.js │ │ │ ├── index.html-713c0b03.js │ │ │ ├── index.html-7422fbd8.js │ │ │ ├── index.html-7427eae1.js │ │ │ ├── index.html-745274d3.js │ │ │ ├── index.html-76b2f44e.js │ │ │ ├── index.html-76d5ede2.js │ │ │ ├── index.html-8053e3cb.js │ │ │ ├── index.html-857c4929.js │ │ │ ├── index.html-8acf3abb.js │ │ │ ├── index.html-8bbb4147.js │ │ │ ├── index.html-8c2656e7.js │ │ │ ├── index.html-8d307b05.js │ │ │ ├── index.html-8e51bcca.js │ │ │ ├── index.html-8f907ef5.js │ │ │ ├── index.html-91bdac09.js │ │ │ ├── index.html-943b7f7a.js │ │ │ ├── index.html-95a484cd.js │ │ │ ├── index.html-96d82f0d.js │ │ │ ├── index.html-97eb5d36.js │ │ │ ├── index.html-99981b74.js │ │ │ ├── index.html-9d4f6672.js │ │ │ ├── index.html-9d65db99.js │ │ │ ├── index.html-a539a790.js │ │ │ ├── index.html-a54906fb.js │ │ │ ├── index.html-a5a9185a.js │ │ │ ├── index.html-a765c656.js │ │ │ ├── index.html-a89f5340.js │ │ │ ├── index.html-aa7ef76f.js │ │ │ ├── index.html-ad346522.js │ │ │ ├── index.html-ad8b3a72.js │ │ │ ├── index.html-afb95a77.js │ │ │ ├── index.html-b20e2923.js │ │ │ ├── index.html-b2ce7e7f.js │ │ │ ├── index.html-b3d3ec7c.js │ │ │ ├── index.html-b451b36d.js │ │ │ ├── index.html-b4cf56c2.js │ │ │ ├── index.html-bc9ce8bb.js │ │ │ ├── index.html-bd1ffaf2.js │ │ │ ├── index.html-be3804f2.js │ │ │ ├── index.html-bf4871ad.js │ │ │ ├── index.html-c0f2c0a5.js │ │ │ ├── index.html-c1a939e1.js │ │ │ ├── index.html-c8281092.js │ │ │ ├── index.html-ccd644b6.js │ │ │ ├── index.html-cdbe65aa.js │ │ │ ├── index.html-ce34f1e2.js │ │ │ ├── index.html-d1747809.js │ │ │ ├── index.html-d3bad99f.js │ │ │ ├── index.html-d4ca8835.js │ │ │ ├── index.html-d6e1badb.js │ │ │ ├── index.html-d70683da.js │ │ │ ├── index.html-da101bcb.js │ │ │ ├── index.html-dbb7f701.js │ │ │ ├── index.html-ded1263b.js │ │ │ ├── index.html-dfa2d7a5.js │ │ │ ├── index.html-e446e569.js │ │ │ ├── index.html-e5dd1097.js │ │ │ ├── index.html-e85e5e25.js │ │ │ ├── index.html-e98d2633.js │ │ │ ├── index.html-e9931eba.js │ │ │ ├── index.html-eba9312e.js │ │ │ ├── index.html-edccff4f.js │ │ │ ├── index.html-f0044d03.js │ │ │ ├── index.html-f0832841.js │ │ │ ├── index.html-f19b837b.js │ │ │ ├── index.html-f1ef677c.js │ │ │ ├── index.html-f213f8ef.js │ │ │ ├── index.html-f39be925.js │ │ │ ├── index.html-f627098e.js │ │ │ ├── index.html-fc9bb0f4.js │ │ │ ├── index.html-fd5a5b88.js │ │ │ ├── index.html-fffbad31.js │ │ │ ├── infoDiagram-69ec1a58-3bdfb92b.js │ │ │ ├── init-77b53fdd.js │ │ │ ├── install-form-2753ef8e.png │ │ │ ├── install-form-e19dd765.png │ │ │ ├── installation.html-41eb0872.js │ │ │ ├── installation.html-8275b44f.js │ │ │ ├── installation.html-c1519c73.js │ │ │ ├── installation.html-dc29e5fa.js │ │ │ ├── integration.html-5e1c4dba.js │ │ │ ├── integration.html-8a1ed9a5.js │ │ │ ├── integration.html-d40d8dbd.js │ │ │ ├── integration.html-e55d9f4e.js │ │ │ ├── introduction.html-18f4cb04.js │ │ │ ├── introduction.html-655140dd.js │ │ │ ├── introduction.html-748e5d0c.js │ │ │ ├── introduction.html-7990588f.js │ │ │ ├── is_dark-fb214718.js │ │ │ ├── journeyDiagram-d38aa57d-d18b3905.js │ │ │ ├── js │ │ │ │ ├── rapidoc-min.js │ │ │ │ └── umeng.js │ │ │ ├── kubernetes.html-2e08a06f.js │ │ │ ├── kubernetes.html-62b17d6d.js │ │ │ ├── kubernetes.html-a1d93692.js │ │ │ ├── kubernetes.html-be1b170e.js │ │ │ ├── layout-4e5c420f.js │ │ │ ├── license.html-1b4a52ca.js │ │ │ ├── license.html-21a6834f.js │ │ │ ├── license.html-943398ca.js │ │ │ ├── license.html-af6ec994.js │ │ │ ├── line-f5d60f93.js │ │ │ ├── link-permissions-form-b3b72d10.png │ │ │ ├── link-permissions-form-ec2b3bcc.png │ │ │ ├── link-users-form-23f52b7e.png │ │ │ ├── link-users-form-ed546015.png │ │ │ ├── master-node.html-7d21ad56.js │ │ │ ├── master-node.html-9559d22f.js │ │ │ ├── master-node.html-bc6d5c9b.js │ │ │ ├── master-node.html-dffc86aa.js │ │ │ ├── menu-1400c7c5.png │ │ │ ├── menu-36af1ebc.png │ │ │ ├── mermaid.core-db7b7a77.js │ │ │ ├── metric-source-cb47f276.png │ │ │ ├── metrics-detail-1d5de9b7.png │ │ │ ├── metrics-detail-37090ce4.png │ │ │ ├── metrics-overview-292b3d2d.png │ │ │ ├── metrics-overview-a72a026d.png │ │ │ ├── metrics-panel-320bcc75.png │ │ │ ├── metrics-panel-4f25c8a9.png │ │ │ ├── mindmap-definition-65b51176-358e92da.js │ │ │ ├── mobile-config-4a8a8541.png │ │ │ ├── mobile-config-d191cff8.png │ │ │ ├── mongo-data-source-f5635164.png │ │ │ ├── mongo-form-6a7401f4.png │ │ │ ├── mongodb.html-0ce00a7f.js │ │ │ ├── mongodb.html-e4e8655b.js │ │ │ ├── mongodb.html-e60f46a7.js │ │ │ ├── mongodb.html-eb338dcf.js │ │ │ ├── new-data-source-button-d82fcfd4.png │ │ │ ├── node-communication-2998ed46.png │ │ │ ├── node-communication.html-20783300.js │ │ │ ├── node-communication.html-5f627d1f.js │ │ │ ├── node-communication.html-6f459ea0.js │ │ │ ├── node-communication.html-98b664b9.js │ │ │ ├── notification-menu-1d353f85.png │ │ │ ├── notification-menu-5e1bb6db.png │ │ │ ├── path-53f90ab3.js │ │ │ ├── permissions-create-bc9f093a.png │ │ │ ├── permissions-create-form-9e6e6d1b.png │ │ │ ├── permissions-create-form-de933f1b.png │ │ │ ├── permissions-menu-cccaecf0.png │ │ │ ├── photoswipe.esm-36cd6c3c.js │ │ │ ├── pieDiagram-db1a8a21-d0726316.js │ │ │ ├── plugin-dependency.html-b26bc1b9.js │ │ │ ├── plugin-dependency.html-b3350bb0.js │ │ │ ├── plugin-dependency.html-b72ff858.js │ │ │ ├── plugin-dependency.html-d95c8037.js │ │ │ ├── plugin-notification.html-61fce2cc.js │ │ │ ├── plugin-notification.html-63fa5e64.js │ │ │ ├── plugin-notification.html-a83a08fa.js │ │ │ ├── plugin-notification.html-ea3a89ca.js │ │ │ ├── plugin-spider-assistant.html-6bcc8c65.js │ │ │ ├── plugin-spider-assistant.html-a3d0bb9a.js │ │ │ ├── plugin-spider-assistant.html-a79c7ea6.js │ │ │ ├── plugin-spider-assistant.html-b10ba5ea.js │ │ │ ├── quick-start.html-75f6120d.js │ │ │ ├── quick-start.html-9429c08c.js │ │ │ ├── quick-start.html-ba3a3ae2.js │ │ │ ├── quick-start.html-e4b1d393.js │ │ │ ├── quick-tutorial-1-3eecb59a.png │ │ │ ├── quick-tutorial-10-abdc0eaf.png │ │ │ ├── quick-tutorial-2-57effcf2.png │ │ │ ├── quick-tutorial-3-9d6cfe63.png │ │ │ ├── quick-tutorial-4-d0a10ebe.png │ │ │ ├── quick-tutorial-5-bc045d29.png │ │ │ ├── quick-tutorial-6-46741e6a.png │ │ │ ├── quick-tutorial-7-6bc2c386.png │ │ │ ├── quick-tutorial-8-7d7a1ebe.png │ │ │ ├── quick-tutorial-9-aa3228b7.png │ │ │ ├── rapidoc-min-8064c46b.js │ │ │ ├── requirementDiagram-b9649942-5153ee88.js │ │ │ ├── results-f00c6458.png │ │ │ ├── roles-create-form-5a649f6e.png │ │ │ ├── roles-create-form-7c76fd2a.png │ │ │ ├── roles-menu-faad2118.png │ │ │ ├── seaweedfs.html-1db3578d.js │ │ │ ├── seaweedfs.html-1de641ff.js │ │ │ ├── seaweedfs.html-ae9c512e.js │ │ │ ├── seaweedfs.html-c2751f39.js │ │ │ ├── selectAll-1213cfb9.js │ │ │ ├── selenium.html-1ec9eacd.js │ │ │ ├── selenium.html-bb5bf820.js │ │ │ ├── selenium.html-cb00ddf0.js │ │ │ ├── selenium.html-e5e9efb9.js │ │ │ ├── sequenceDiagram-446df3e4-4e7f5b34.js │ │ │ ├── settings-c94c850f.png │ │ │ ├── settings-list-037b980d.png │ │ │ ├── stateDiagram-d53d2428-8ba8a24b.js │ │ │ ├── stateDiagram-v2-9765461d-a62513c9.js │ │ │ ├── style-becf472a.css │ │ │ ├── styles-16907e1b-140367c3.js │ │ │ ├── styles-26373982-999efa7c.js │ │ │ ├── styles-47a825a5-f0fac64a.js │ │ │ ├── svgDraw-2526cba0-2cddb42c.js │ │ │ ├── tasks-list-372eb86b.png │ │ │ ├── tasks-list-3797674b.png │ │ │ ├── tasks-logs-content-ab2c4c7f.png │ │ │ ├── tasks-logs-content-f9931460.png │ │ │ ├── template-0df15266.png │ │ │ ├── template-b6a592a1.png │ │ │ ├── timeline-definition-de69aca6-e7e94438.js │ │ │ ├── uninstall-form-35021677.png │ │ │ ├── uninstall-form-3a091683.png │ │ │ ├── v0.6.html-4454ad0c.js │ │ │ ├── v0.6.html-4db2e45b.js │ │ │ ├── v0.6.html-614d428a.js │ │ │ ├── v0.6.html-f4484b30.js │ │ │ ├── vueperslides.es-af358afa.js │ │ │ ├── worker-node.html-4a9aa42b.js │ │ │ ├── worker-node.html-70f5f3e0.js │ │ │ ├── worker-node.html-baa07a16.js │ │ │ ├── worker-node.html-e487615c.js │ │ │ └── yaml │ │ │ │ └── openapi.yaml │ │ ├── en │ │ │ ├── api │ │ │ │ ├── api-reference.html │ │ │ │ └── index.html │ │ │ ├── develop │ │ │ │ ├── index.html │ │ │ │ ├── introduction.html │ │ │ │ └── plugins │ │ │ │ │ └── index.html │ │ │ ├── faq │ │ │ │ └── index.html │ │ │ ├── guide │ │ │ │ ├── basic-tutorial │ │ │ │ │ └── index.html │ │ │ │ ├── cli │ │ │ │ │ └── index.html │ │ │ │ ├── data-sources │ │ │ │ │ └── index.html │ │ │ │ ├── deps │ │ │ │ │ └── index.html │ │ │ │ ├── environment │ │ │ │ │ └── index.html │ │ │ │ ├── index.html │ │ │ │ ├── installation │ │ │ │ │ ├── direct-deploy.html │ │ │ │ │ ├── docker.html │ │ │ │ │ ├── index.html │ │ │ │ │ └── kubernetes.html │ │ │ │ ├── monitoring │ │ │ │ │ └── index.html │ │ │ │ ├── node │ │ │ │ │ └── index.html │ │ │ │ ├── notifications │ │ │ │ │ └── index.html │ │ │ │ ├── permissions │ │ │ │ │ └── index.html │ │ │ │ ├── plugin │ │ │ │ │ ├── index.html │ │ │ │ │ ├── plugin-dependency.html │ │ │ │ │ ├── plugin-notification.html │ │ │ │ │ └── plugin-spider-assistant.html │ │ │ │ ├── project │ │ │ │ │ └── index.html │ │ │ │ ├── quick-start.html │ │ │ │ ├── schedule │ │ │ │ │ └── index.html │ │ │ │ ├── spider │ │ │ │ │ ├── file-editor.html │ │ │ │ │ ├── git.html │ │ │ │ │ ├── index.html │ │ │ │ │ ├── integration.html │ │ │ │ │ └── selenium.html │ │ │ │ ├── task │ │ │ │ │ └── index.html │ │ │ │ ├── token │ │ │ │ │ └── index.html │ │ │ │ └── user │ │ │ │ │ └── index.html │ │ │ ├── index.html │ │ │ ├── migration │ │ │ │ ├── index.html │ │ │ │ └── v0.6.html │ │ │ ├── principle │ │ │ │ ├── architecture │ │ │ │ │ └── index.html │ │ │ │ ├── core-modules │ │ │ │ │ ├── index.html │ │ │ │ │ ├── schedule │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── spider │ │ │ │ │ │ └── index.html │ │ │ │ │ └── task │ │ │ │ │ │ └── index.html │ │ │ │ ├── database │ │ │ │ │ ├── index.html │ │ │ │ │ └── mongodb.html │ │ │ │ ├── filesystem │ │ │ │ │ ├── index.html │ │ │ │ │ └── seaweedfs.html │ │ │ │ ├── frontend │ │ │ │ │ └── index.html │ │ │ │ ├── index.html │ │ │ │ └── node │ │ │ │ │ ├── index.html │ │ │ │ │ ├── master-node.html │ │ │ │ │ ├── node-communication.html │ │ │ │ │ └── worker-node.html │ │ │ └── pro │ │ │ │ ├── index.html │ │ │ │ ├── installation.html │ │ │ │ └── license.html │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo-main.svg │ │ ├── logo.png │ │ ├── logo.svg │ │ ├── robots.txt │ │ ├── sitemap.xml │ │ ├── sitemap.xsl │ │ └── zh │ │ │ ├── api │ │ │ ├── api-reference.html │ │ │ └── index.html │ │ │ ├── develop │ │ │ ├── index.html │ │ │ ├── introduction.html │ │ │ └── plugins │ │ │ │ └── index.html │ │ │ ├── faq │ │ │ └── index.html │ │ │ ├── guide │ │ │ ├── basic-tutorial │ │ │ │ └── index.html │ │ │ ├── cli │ │ │ │ └── index.html │ │ │ ├── data-sources │ │ │ │ └── index.html │ │ │ ├── deps │ │ │ │ └── index.html │ │ │ ├── environment │ │ │ │ └── index.html │ │ │ ├── index.html │ │ │ ├── installation │ │ │ │ ├── direct-deploy.html │ │ │ │ ├── docker.html │ │ │ │ ├── index.html │ │ │ │ └── kubernetes.html │ │ │ ├── monitoring │ │ │ │ └── index.html │ │ │ ├── node │ │ │ │ └── index.html │ │ │ ├── notifications │ │ │ │ └── index.html │ │ │ ├── permissions │ │ │ │ └── index.html │ │ │ ├── plugin │ │ │ │ ├── index.html │ │ │ │ ├── plugin-dependency.html │ │ │ │ ├── plugin-notification.html │ │ │ │ └── plugin-spider-assistant.html │ │ │ ├── project │ │ │ │ └── index.html │ │ │ ├── quick-start.html │ │ │ ├── schedule │ │ │ │ └── index.html │ │ │ ├── spider │ │ │ │ ├── file-editor.html │ │ │ │ ├── git.html │ │ │ │ ├── index.html │ │ │ │ ├── integration.html │ │ │ │ └── selenium.html │ │ │ ├── task │ │ │ │ └── index.html │ │ │ ├── token │ │ │ │ └── index.html │ │ │ └── user │ │ │ │ └── index.html │ │ │ ├── index.html │ │ │ ├── migration │ │ │ ├── index.html │ │ │ └── v0.6.html │ │ │ ├── principle │ │ │ ├── architecture │ │ │ │ └── index.html │ │ │ ├── core-modules │ │ │ │ ├── index.html │ │ │ │ ├── schedule │ │ │ │ │ └── index.html │ │ │ │ ├── spider │ │ │ │ │ └── index.html │ │ │ │ └── task │ │ │ │ │ └── index.html │ │ │ ├── database │ │ │ │ ├── index.html │ │ │ │ └── mongodb.html │ │ │ ├── filesystem │ │ │ │ ├── index.html │ │ │ │ └── seaweedfs.html │ │ │ ├── frontend │ │ │ │ └── index.html │ │ │ ├── index.html │ │ │ └── node │ │ │ │ ├── index.html │ │ │ │ ├── master-node.html │ │ │ │ ├── node-communication.html │ │ │ │ └── worker-node.html │ │ │ └── pro │ │ │ ├── index.html │ │ │ ├── installation.html │ │ │ └── license.html │ ├── public │ │ ├── assets │ │ │ ├── images │ │ │ │ ├── beian-logo.png │ │ │ │ └── screenshots │ │ │ │ │ ├── screenshot-email-notifications.png │ │ │ │ │ ├── screenshot-git-logs.png │ │ │ │ │ ├── screenshot-home.png │ │ │ │ │ ├── screenshot-login.png │ │ │ │ │ ├── screenshot-mobile-notifications.png │ │ │ │ │ ├── screenshot-node-list.png │ │ │ │ │ ├── screenshot-plugin-dependency.png │ │ │ │ │ ├── screenshot-plugin-list.png │ │ │ │ │ ├── screenshot-plugin-spider-assistant.png │ │ │ │ │ ├── screenshot-project-list.png │ │ │ │ │ ├── screenshot-schedule-create.png │ │ │ │ │ ├── screenshot-schedule-detail-overview.png │ │ │ │ │ ├── screenshot-spider-detail-files.png │ │ │ │ │ ├── screenshot-spider-detail-overview.png │ │ │ │ │ ├── screenshot-spider-list-columns-customization.png │ │ │ │ │ ├── screenshot-spider-list.png │ │ │ │ │ ├── screenshot-task-detail-data.png │ │ │ │ │ ├── screenshot-task-detail-logs.png │ │ │ │ │ └── screenshot-task-list.png │ │ │ ├── img │ │ │ │ ├── guide │ │ │ │ │ └── use-crawlab │ │ │ │ │ │ └── img │ │ │ │ │ │ ├── quick-tutorial-1.png │ │ │ │ │ │ ├── quick-tutorial-10.png │ │ │ │ │ │ ├── quick-tutorial-2.png │ │ │ │ │ │ ├── quick-tutorial-3.png │ │ │ │ │ │ ├── quick-tutorial-4.png │ │ │ │ │ │ ├── quick-tutorial-5.png │ │ │ │ │ │ ├── quick-tutorial-6.png │ │ │ │ │ │ ├── quick-tutorial-7.png │ │ │ │ │ │ ├── quick-tutorial-8.png │ │ │ │ │ │ └── quick-tutorial-9.png │ │ │ │ ├── logo-150x150.png │ │ │ │ ├── logo.svg │ │ │ │ ├── principle │ │ │ │ │ └── architecture │ │ │ │ │ │ └── img │ │ │ │ │ │ └── crawlab-architecture.png │ │ │ │ ├── quick-tutorial-1.png │ │ │ │ ├── screenshots │ │ │ │ │ ├── screenshot-email-notifications.png │ │ │ │ │ ├── screenshot-git-logs.png │ │ │ │ │ ├── screenshot-home.png │ │ │ │ │ ├── screenshot-login.png │ │ │ │ │ ├── screenshot-mobile-notifications.png │ │ │ │ │ ├── screenshot-node-list.png │ │ │ │ │ ├── screenshot-plugin-dependency.png │ │ │ │ │ ├── screenshot-plugin-list.png │ │ │ │ │ ├── screenshot-plugin-spider-assistant.png │ │ │ │ │ ├── screenshot-project-list.png │ │ │ │ │ ├── screenshot-schedule-create.png │ │ │ │ │ ├── screenshot-schedule-detail-overview.png │ │ │ │ │ ├── screenshot-spider-detail-files.png │ │ │ │ │ ├── screenshot-spider-detail-overview.png │ │ │ │ │ ├── screenshot-spider-list-columns-customization.png │ │ │ │ │ ├── screenshot-spider-list.png │ │ │ │ │ ├── screenshot-task-detail-data.png │ │ │ │ │ ├── screenshot-task-detail-logs.png │ │ │ │ │ └── screenshot-task-list.png │ │ │ │ └── zh │ │ │ │ │ └── guide │ │ │ │ │ └── use-crawlab │ │ │ │ │ └── img │ │ │ │ │ ├── quick-tutorial-1.png │ │ │ │ │ ├── quick-tutorial-10.png │ │ │ │ │ ├── quick-tutorial-2.png │ │ │ │ │ ├── quick-tutorial-3.png │ │ │ │ │ ├── quick-tutorial-4.png │ │ │ │ │ ├── quick-tutorial-5.png │ │ │ │ │ ├── quick-tutorial-6.png │ │ │ │ │ ├── quick-tutorial-7.png │ │ │ │ │ ├── quick-tutorial-8.png │ │ │ │ │ └── quick-tutorial-9.png │ │ │ ├── js │ │ │ │ ├── rapidoc-min.js │ │ │ │ └── umeng.js │ │ │ └── yaml │ │ │ │ └── openapi.yaml │ │ ├── favicon.ico │ │ ├── logo-main.svg │ │ ├── logo.png │ │ └── logo.svg │ ├── sidebar │ │ ├── en.ts │ │ └── zh.ts │ ├── styles │ │ ├── index.scss │ │ └── palette.scss │ └── theme.ts ├── README.md ├── en │ ├── README.md │ ├── ai │ │ ├── README.md │ │ ├── api-token.md │ │ ├── img │ │ │ ├── licenses.png │ │ │ └── tokens.png │ │ ├── license.md │ │ └── sdk.md │ ├── api │ │ ├── README.md │ │ └── api-reference.md │ ├── develop │ │ ├── README.md │ │ ├── introduction.md │ │ └── plugins │ │ │ └── README.md │ ├── faq │ │ └── README.md │ ├── guide │ │ ├── README.md │ │ ├── basic-tutorial │ │ │ ├── README.md │ │ │ └── img │ │ │ │ ├── quick-tutorial-1.png │ │ │ │ ├── quick-tutorial-10.png │ │ │ │ ├── quick-tutorial-2.png │ │ │ │ ├── quick-tutorial-3.png │ │ │ │ ├── quick-tutorial-4.png │ │ │ │ ├── quick-tutorial-5.png │ │ │ │ ├── quick-tutorial-6.png │ │ │ │ ├── quick-tutorial-7.png │ │ │ │ ├── quick-tutorial-8.png │ │ │ │ └── quick-tutorial-9.png │ │ ├── cli │ │ │ └── README.md │ │ ├── data-sources │ │ │ ├── README.md │ │ │ └── img │ │ │ │ ├── data-sources-menu.png │ │ │ │ ├── mongo-data-source.png │ │ │ │ ├── mongo-form.png │ │ │ │ ├── new-data-source-button.png │ │ │ │ └── results.png │ │ ├── deps │ │ │ ├── README.md │ │ │ └── img │ │ │ │ ├── configure.png │ │ │ │ ├── deps-list.png │ │ │ │ ├── install-form.png │ │ │ │ ├── install.png │ │ │ │ ├── installable.png │ │ │ │ ├── installed.png │ │ │ │ ├── menu.png │ │ │ │ ├── search.png │ │ │ │ ├── settings-list.png │ │ │ │ ├── settings.png │ │ │ │ ├── tasks-list.png │ │ │ │ ├── tasks-logs-content.png │ │ │ │ ├── tasks-logs.png │ │ │ │ ├── tasks.png │ │ │ │ ├── uninstall-form.png │ │ │ │ └── uninstall.png │ │ ├── environment │ │ │ └── README.md │ │ ├── installation │ │ │ ├── README.md │ │ │ ├── docker.md │ │ │ └── kubernetes.md │ │ ├── monitoring │ │ │ ├── README.md │ │ │ └── img │ │ │ │ ├── metric-source.png │ │ │ │ ├── metrics-detail.png │ │ │ │ ├── metrics-menu.png │ │ │ │ ├── metrics-overview.png │ │ │ │ ├── metrics-panel.png │ │ │ │ ├── time-range.png │ │ │ │ ├── time-unit.png │ │ │ │ └── view-button.png │ │ ├── node │ │ │ └── README.md │ │ ├── notifications │ │ │ ├── README.md │ │ │ └── img │ │ │ │ ├── email-config.png │ │ │ │ ├── email.png │ │ │ │ ├── mobile-config.png │ │ │ │ ├── mobile.png │ │ │ │ ├── notification-menu.png │ │ │ │ └── template.png │ │ ├── permissions │ │ │ ├── README.md │ │ │ └── img │ │ │ │ ├── delete-button.png │ │ │ │ ├── link-permissions-button.png │ │ │ │ ├── link-permissions-form.png │ │ │ │ ├── link-users-button.png │ │ │ │ ├── link-users-form.png │ │ │ │ ├── permissions-create-form.png │ │ │ │ ├── permissions-create.png │ │ │ │ ├── permissions-menu.png │ │ │ │ ├── roles-create-form.png │ │ │ │ ├── roles-create.png │ │ │ │ ├── roles-menu.png │ │ │ │ ├── view-permissions-button.png │ │ │ │ └── view-users-button.png │ │ ├── plugin │ │ │ ├── README.md │ │ │ ├── plugin-dependency.md │ │ │ ├── plugin-notification.md │ │ │ └── plugin-spider-assistant.md │ │ ├── project │ │ │ └── README.md │ │ ├── quick-start.md │ │ ├── schedule │ │ │ └── README.md │ │ ├── spider │ │ │ ├── README.md │ │ │ ├── file-editor.md │ │ │ ├── git.md │ │ │ ├── img │ │ │ │ ├── delete-file.png │ │ │ │ ├── duplicate.png │ │ │ │ ├── file-editor.png │ │ │ │ ├── files-sidebar.png │ │ │ │ ├── files-tab.png │ │ │ │ ├── rename.png │ │ │ │ └── save-btn.png │ │ │ ├── integration.md │ │ │ └── selenium.md │ │ ├── task │ │ │ └── README.md │ │ ├── token │ │ │ └── README.md │ │ └── user │ │ │ └── README.md │ ├── migration │ │ ├── README.md │ │ └── v0.6.md │ ├── principle │ │ ├── README.md │ │ ├── architecture │ │ │ ├── README.md │ │ │ └── img │ │ │ │ └── crawlab-architecture.png │ │ ├── core-modules │ │ │ ├── README.md │ │ │ ├── schedule │ │ │ │ └── README.md │ │ │ ├── spider │ │ │ │ └── README.md │ │ │ └── task │ │ │ │ └── README.md │ │ ├── database │ │ │ ├── README.md │ │ │ └── mongodb.md │ │ ├── filesystem │ │ │ ├── README.md │ │ │ ├── img │ │ │ │ └── file-management.png │ │ │ └── seaweedfs.md │ │ ├── frontend │ │ │ └── README.md │ │ └── node │ │ │ ├── README.md │ │ │ ├── img │ │ │ └── node-communication.png │ │ │ ├── master-node.md │ │ │ ├── node-communication.md │ │ │ └── worker-node.md │ └── pro │ │ ├── README.md │ │ ├── installation.md │ │ └── license.md └── zh │ ├── README.md │ ├── ai │ ├── README.md │ ├── api-token.md │ ├── img │ │ ├── licenses.png │ │ └── tokens.png │ ├── license.md │ └── sdk.md │ ├── api │ ├── README.md │ └── api-reference.md │ ├── develop │ ├── README.md │ ├── introduction.md │ └── plugins │ │ └── README.md │ ├── faq │ └── README.md │ ├── guide │ ├── README.md │ ├── basic-tutorial │ │ ├── README.md │ │ └── img │ │ │ ├── quick-tutorial-1.png │ │ │ ├── quick-tutorial-10.png │ │ │ ├── quick-tutorial-2.png │ │ │ ├── quick-tutorial-3.png │ │ │ ├── quick-tutorial-4.png │ │ │ ├── quick-tutorial-5.png │ │ │ ├── quick-tutorial-6.png │ │ │ ├── quick-tutorial-7.png │ │ │ ├── quick-tutorial-8.png │ │ │ └── quick-tutorial-9.png │ ├── cli │ │ └── README.md │ ├── data-sources │ │ ├── README.md │ │ └── img │ │ │ ├── data-sources-menu.png │ │ │ ├── mongo-data-source.png │ │ │ ├── mongo-form.png │ │ │ ├── new-data-source-button.png │ │ │ └── results.png │ ├── deps │ │ ├── README.md │ │ └── img │ │ │ ├── configure.png │ │ │ ├── deps-list.png │ │ │ ├── install-form.png │ │ │ ├── install.png │ │ │ ├── installable.png │ │ │ ├── installed.png │ │ │ ├── menu.png │ │ │ ├── search.png │ │ │ ├── settings-list.png │ │ │ ├── settings.png │ │ │ ├── tasks-list.png │ │ │ ├── tasks-logs-content.png │ │ │ ├── tasks-logs.png │ │ │ ├── tasks.png │ │ │ ├── uninstall-form.png │ │ │ └── uninstall.png │ ├── environment │ │ └── README.md │ ├── installation │ │ ├── README.md │ │ ├── docker.md │ │ └── kubernetes.md │ ├── monitoring │ │ ├── README.md │ │ └── img │ │ │ ├── metric-source.png │ │ │ ├── metrics-detail.png │ │ │ ├── metrics-menu.png │ │ │ ├── metrics-overview.png │ │ │ ├── metrics-panel.png │ │ │ ├── time-range.png │ │ │ ├── time-unit.png │ │ │ └── view-button.png │ ├── node │ │ └── README.md │ ├── notifications │ │ ├── README.md │ │ └── img │ │ │ ├── email-config.png │ │ │ ├── email.png │ │ │ ├── mobile-config.png │ │ │ ├── mobile.png │ │ │ ├── notification-menu.png │ │ │ └── template.png │ ├── permissions │ │ ├── README.md │ │ └── img │ │ │ ├── delete-button.png │ │ │ ├── link-permissions-button.png │ │ │ ├── link-permissions-form.png │ │ │ ├── link-users-button.png │ │ │ ├── link-users-form.png │ │ │ ├── permissions-create-form.png │ │ │ ├── permissions-create.png │ │ │ ├── permissions-menu.png │ │ │ ├── roles-create-form.png │ │ │ ├── roles-create.png │ │ │ ├── roles-menu.png │ │ │ ├── view-permissions-button.png │ │ │ └── view-users-button.png │ ├── plugin │ │ ├── README.md │ │ ├── plugin-dependency.md │ │ ├── plugin-notification.md │ │ └── plugin-spider-assistant.md │ ├── project │ │ └── README.md │ ├── quick-start.md │ ├── schedule │ │ └── README.md │ ├── spider │ │ ├── README.md │ │ ├── file-editor.md │ │ ├── git.md │ │ ├── img │ │ │ ├── delete-file.png │ │ │ ├── duplicate.png │ │ │ ├── file-editor.png │ │ │ ├── files-sidebar.png │ │ │ ├── files-tab.png │ │ │ ├── rename.png │ │ │ └── save-btn.png │ │ ├── integration.md │ │ └── selenium.md │ ├── task │ │ └── README.md │ ├── token │ │ └── README.md │ └── user │ │ └── README.md │ ├── migration │ ├── README.md │ └── v0.6.md │ ├── principle │ ├── README.md │ ├── architecture │ │ ├── README.md │ │ └── img │ │ │ └── crawlab-architecture.png │ ├── core-modules │ │ ├── README.md │ │ ├── schedule │ │ │ └── README.md │ │ ├── spider │ │ │ └── README.md │ │ └── task │ │ │ └── README.md │ ├── database │ │ ├── README.md │ │ └── mongodb.md │ ├── filesystem │ │ ├── README.md │ │ ├── img │ │ │ └── file-management.png │ │ └── seaweedfs.md │ ├── frontend │ │ └── README.md │ └── node │ │ ├── README.md │ │ ├── img │ │ └── node-communication.png │ │ ├── master-node.md │ │ ├── node-communication.md │ │ └── worker-node.md │ └── pro │ ├── README.md │ ├── installation.md │ └── license.md ├── package.json ├── pnpm-lock.yaml └── scripts ├── convertImage.js ├── moveImages.js ├── publish.js └── translate.js /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | indent_size = 2 3 | indent_style = space -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | BAIDU_FANYI_APP_ID= 2 | BAIDU_FANYI_APP_SECRET= 3 | CRAWLAB_LANG=zh 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | ../_book/ 3 | node_modules/ 4 | tmp/ 5 | .idea 6 | *.log 7 | *.local 8 | .docs 9 | #dist/ 10 | venv/ 11 | .temp/ 12 | .cache/ -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .next 3 | public 4 | dist 5 | build -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "es5", 4 | "singleQuote": true, 5 | "printWidth": 80, 6 | "tabWidth": 2, 7 | "useTabs": false, 8 | "bracketSpacing": true, 9 | "arrowParens": "avoid" 10 | } 11 | -------------------------------------------------------------------------------- /docs/.vuepress/components/ApiDoc.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 16 | 17 | 23 | -------------------------------------------------------------------------------- /docs/.vuepress/components/CardList.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 25 | 26 | 34 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Redirect.vue: -------------------------------------------------------------------------------- 1 | 2 | 35 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/404.html-57a877d7.js: -------------------------------------------------------------------------------- 1 | import{_ as e,Z as t,$ as _}from"./framework-64cb0dab.js";const c={};function r(n,o){return t(),_("div")}const a=e(c,[["render",r],["__file","404.html.vue"]]);export{a as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/404.html-8a42c25a.js: -------------------------------------------------------------------------------- 1 | const t=JSON.parse('{"key":"v-3706649a","path":"/404.html","title":"","lang":"en-US","frontmatter":{"layout":"NotFound","description":"","head":[["meta",{"property":"og:url","content":"https://docs.crawlab.cn/404.html"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"article:author","content":"Marvin Zhang"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"autoDesc":true}');export{t as data}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/ApiDoc-561eb16a.js: -------------------------------------------------------------------------------- 1 | import{g as o,Z as s,$ as t,_}from"./framework-64cb0dab.js";const c=["spec-url"],p=o({__name:"ApiDoc",props:{specUrl:{}},setup(a){return(e,r)=>(s(),t("rapi-doc",{"spec-url":e.specUrl,"render-style":"view",style:{height:"100%",width:"100%"},theme:"light",layout:"row","bg-color":"#fff","show-header":!1},null,8,c))}});const n=_(p,[["__scopeId","data-v-09aa5b2d"],["__file","ApiDoc.vue"]]);export{n as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/Card-75f75c66.js: -------------------------------------------------------------------------------- 1 | import{g as i,Z as e,$ as t,a0 as s,a5 as n,a6 as l,a7 as _,a8 as d,_ as c}from"./framework-64cb0dab.js";const p=["href"],u={class:"card-box"},g={class:"card-title"},f={class:"tag-list"},m={class:"card-subtitle"},v=i({__name:"Card",props:{title:{},link:{},subtitle:{},tags:{default:()=>[]},noMargin:{type:Boolean}},setup(h){return(a,k)=>(e(),t("a",{class:d(["card",{"no-margin":a.noMargin}]),href:a.link,target:"_blank"},[s("div",u,[s("div",g,n(a.title),1),s("div",f,[(e(!0),t(l,null,_(a.tags,(o,r)=>(e(),t("div",{key:r,class:"tag"},n(o),1))),128))])]),s("div",m,n(a.subtitle),1)],10,p))}});const b=c(v,[["__scopeId","data-v-dacf1591"],["__file","Card.vue"]]);export{b as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/CardList-d2737492.js: -------------------------------------------------------------------------------- 1 | import{g as o,E as _,Z as e,$ as a,a6 as i,a7 as l,a9 as d,_ as c}from"./framework-64cb0dab.js";const p={class:"card-list"},u=o({__name:"CardList",props:{cards:{default:()=>[]}},setup(m){return(s,g)=>{const n=_("Card");return e(),a("div",p,[(e(!0),a(i,null,l(s.cards,(t,r)=>(e(),d(n,{key:r,title:t.title,subtitle:t.subtitle,link:t.link,"no-margin":t.noMargin,tags:t.tags},null,8,["title","subtitle","link","no-margin","tags"]))),128))])}}});const f=c(u,[["__scopeId","data-v-a26506d5"],["__file","CardList.vue"]]);export{f as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/Redirect-c6e67f4f.js: -------------------------------------------------------------------------------- 1 | import{_ as r}from"./framework-64cb0dab.js";const n={name:"Redirect",props:{path:{type:String}},computed:{lang(){const t=this.$site.head.filter(e=>e[0]==="meta"&&e[1]&&e[1].name==="default-lang")[0];if(!(!t||!t[1]))return t[1].content},redirectUrl(){return this.path?this.path:`/${this.lang||this.defaultLang}`}},data(){return{defaultLang:"zh"}},mounted(){this.$router.push(this.redirectUrl)}};function a(t,e,i,s,u,c){return null}const p=r(n,[["render",a],["__file","Redirect.vue"]]);export{p as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/SlideList-bc4af83b.js: -------------------------------------------------------------------------------- 1 | import{_ as p}from"./app-631a5bec.js";import{g as m,A as l,k as f,o as v,Z as s,a9 as n,a2 as g,aa as r,ab as h,$ as x,a7 as y,ac as k,a6 as C,_ as L}from"./framework-64cb0dab.js";const b=m({__name:"SlideList",props:{slides:{default:()=>[]}},setup(i){const _=i,a=l(null),t=l(null),u=f(()=>_.slides.map(e=>(e.image&&typeof e.image=="string"&&e.image.match(/^\.\/|^@\//)&&(e.image=require(e.image)),e)));return v(()=>{p(()=>import("./vueperslides.es-af358afa.js"),["assets/vueperslides.es-af358afa.js","assets/framework-64cb0dab.js"]).then(({VueperSlides:e,VueperSlide:o})=>{a.value=e,t.value=o})}),(e,o)=>a.value?(s(),n(r(a.value),{key:0,"fixed-height":"540px","3d":"",touchable:!1,autoplay:""},{default:g(()=>[(s(!0),x(C,null,y(u.value,(c,d)=>(s(),n(r(t.value),k({key:d},c),null,16))),128))]),_:1})):h("v-if",!0)}});const E=L(b,[["__scopeId","data-v-c85986b0"],["__file","SlideList.vue"]]);export{E as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/api-reference.html-65266e04.js: -------------------------------------------------------------------------------- 1 | import{_ as t}from"./app-631a5bec.js";import{g as a,o as r,E as n,Z as c,$ as _,a1 as p,_ as s}from"./framework-64cb0dab.js";const i=a({__name:"api-reference.html",setup(m){return r(()=>{t(()=>import("./rapidoc-min-8064c46b.js").then(e=>e.r),["assets/rapidoc-min-8064c46b.js","assets/commonjsHelpers-725317a4.js"])}),(e,l)=>{const o=n("ApiDoc");return c(),_("div",null,[p(o,{"spec-url":"https://raw.githubusercontent.com/crawlab-team/crawlab-core/main/docs/api/openapi.yaml"})])}}}),d=s(i,[["__file","api-reference.html.vue"]]);export{d as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/api-reference.html-8ee404e3.js: -------------------------------------------------------------------------------- 1 | import{_ as t}from"./app-631a5bec.js";import{g as a,o as r,E as n,Z as c,$ as _,a1 as p,_ as s}from"./framework-64cb0dab.js";const i=a({__name:"api-reference.html",setup(m){return r(()=>{t(()=>import("./rapidoc-min-8064c46b.js").then(e=>e.r),["assets/rapidoc-min-8064c46b.js","assets/commonjsHelpers-725317a4.js"])}),(e,l)=>{const o=n("ApiDoc");return c(),_("div",null,[p(o,{"spec-url":"https://raw.githubusercontent.com/crawlab-team/crawlab-core/main/docs/api/openapi.yaml"})])}}}),d=s(i,[["__file","api-reference.html.vue"]]);export{d as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/array-9f3ba611.js: -------------------------------------------------------------------------------- 1 | function t(r){return typeof r=="object"&&"length"in r?r:Array.from(r)}export{t as a}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/commonjsHelpers-725317a4.js: -------------------------------------------------------------------------------- 1 | var o=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function l(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}export{o as c,l as g}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/crawlab-architecture-698601e4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/crawlab-architecture-698601e4.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/data-sources-menu-bff4f430.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/data-sources-menu-bff4f430.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/deps-list-04669173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/deps-list-04669173.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/deps-list-1c13578c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/deps-list-1c13578c.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/direct-deploy.html-753fc64a.js: -------------------------------------------------------------------------------- 1 | import{_ as t,Z as c,$ as o,a0 as e,a3 as a}from"./framework-64cb0dab.js";const r={},n=e("h1",{id:"直接部署",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#直接部署","aria-hidden":"true"},"#"),a(" 直接部署")],-1),s=e("p",null,"🚧 Under construction...",-1),d=[n,s];function _(i,l){return c(),o("div",null,d)}const f=t(r,[["render",_],["__file","direct-deploy.html.vue"]]);export{f as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/direct-deploy.html-b88cc414.js: -------------------------------------------------------------------------------- 1 | import{_ as t,Z as c,$ as o,a0 as e,a3 as r}from"./framework-64cb0dab.js";const a={},d=e("h1",{id:"direct-deploy",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#direct-deploy","aria-hidden":"true"},"#"),r(" Direct Deploy")],-1),n=e("p",null,"🚧 Under construction...",-1),s=[d,n];function i(_,l){return c(),o("div",null,s)}const p=t(a,[["render",i],["__file","direct-deploy.html.vue"]]);export{p as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/email-config-7a413924.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/email-config-7a413924.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/email-config-ab32042d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/email-config-ab32042d.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/file-editor-a842b300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/file-editor-a842b300.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/file-management-1145ded8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/file-management-1145ded8.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/files-sidebar-6856726a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/files-sidebar-6856726a.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/files-sidebar-a703b22b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/files-sidebar-a703b22b.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/flowDiagram-v2-8e52592d-0ebac1d7.js: -------------------------------------------------------------------------------- 1 | import{p as e,f as o}from"./flowDb-52e24d17-10223c6c.js";import{f as t,g as a}from"./styles-26373982-999efa7c.js";import{a4 as i}from"./mermaid.core-db7b7a77.js";import"./layout-4e5c420f.js";import"./createText-1f5f8f92-13e0bd8e.js";import"./index-5219d011-2dee359b.js";import"./edges-2e77835f-0921c07f.js";import"./svgDraw-2526cba0-2cddb42c.js";import"./line-f5d60f93.js";import"./array-9f3ba611.js";import"./path-53f90ab3.js";import"./selectAll-1213cfb9.js";import"./commonjsHelpers-725317a4.js";import"./app-631a5bec.js";import"./framework-64cb0dab.js";const c={parser:e,db:o,renderer:t,styles:a,init:r=>{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,i({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}}),t.setConf(r.flowchart),o.clear(),o.setGen("gen-2")}};export{c as diagram}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/beian-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/beian-logo.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-email-notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-email-notifications.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-git-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-git-logs.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-home.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-login.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-mobile-notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-mobile-notifications.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-node-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-node-list.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-plugin-dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-plugin-dependency.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-plugin-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-plugin-list.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-plugin-spider-assistant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-plugin-spider-assistant.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-project-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-project-list.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-schedule-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-schedule-create.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-schedule-detail-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-schedule-detail-overview.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-spider-detail-files.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-spider-detail-files.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-spider-detail-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-spider-detail-overview.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-spider-list-columns-customization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-spider-list-columns-customization.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-spider-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-spider-list.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-task-detail-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-task-detail-data.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-task-detail-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-task-detail-logs.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/images/screenshots/screenshot-task-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/images/screenshots/screenshot-task-list.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-1.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-10.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-2.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-3.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-4.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-5.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-6.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-7.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-8.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/guide/use-crawlab/img/quick-tutorial-9.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/logo-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/logo-150x150.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/principle/architecture/img/crawlab-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/principle/architecture/img/crawlab-architecture.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/quick-tutorial-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/quick-tutorial-1.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-email-notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-email-notifications.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-git-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-git-logs.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-home.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-login.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-mobile-notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-mobile-notifications.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-node-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-node-list.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-plugin-dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-plugin-dependency.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-plugin-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-plugin-list.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-plugin-spider-assistant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-plugin-spider-assistant.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-project-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-project-list.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-schedule-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-schedule-create.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-schedule-detail-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-schedule-detail-overview.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-spider-detail-files.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-spider-detail-files.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-spider-detail-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-spider-detail-overview.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-spider-list-columns-customization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-spider-list-columns-customization.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-spider-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-spider-list.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-task-detail-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-task-detail-data.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-task-detail-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-task-detail-logs.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/screenshots/screenshot-task-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/screenshots/screenshot-task-list.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-1.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-10.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-2.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-3.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-4.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-5.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-6.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-7.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-8.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/img/zh/guide/use-crawlab/img/quick-tutorial-9.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-02afe828.js: -------------------------------------------------------------------------------- 1 | import{_ as n,Z as t,$ as o,a0 as e,a3 as s}from"./framework-64cb0dab.js";const a={},c=e("h1",{id:"develop-plugins",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#develop-plugins","aria-hidden":"true"},"#"),s(" Develop Plugins")],-1),r=e("p",null,"🚧 Under construction",-1),d=[c,r];function i(l,_){return t(),o("div",null,d)}const u=n(a,[["render",i],["__file","index.html.vue"]]);export{u as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-06104d8e.js: -------------------------------------------------------------------------------- 1 | const e=JSON.parse('{"key":"v-40000acc","path":"/zh/develop/","title":"","lang":"zh-CN","frontmatter":{"description":"","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://docs.crawlab.cn/en/develop/"}],["meta",{"property":"og:url","content":"https://docs.crawlab.cn/zh/develop/"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2021-11-14T10:35:32.000Z"}],["meta",{"property":"article:author","content":"Marvin Zhang"}],["meta",{"property":"article:modified_time","content":"2021-11-14T10:35:32.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2021-11-14T10:35:32.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"Marvin Zhang\\"}]}"]]},"headers":[],"git":{"createdTime":1636549342000,"updatedTime":1636886132000,"contributors":[{"name":"Marvin Zhang","email":"tikazyq@163.com","commits":3}]},"readingTime":{"minutes":0.01,"words":4},"filePathRelative":"zh/develop/README.md","localizedDate":"2021年11月10日","autoDesc":true}');export{e as data}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-0640701d.js: -------------------------------------------------------------------------------- 1 | import{_ as a,E as i,Z as s,$ as d,a0 as e,a1 as n,a2 as o,a3 as l}from"./framework-64cb0dab.js";const r={},c=e("h1",{id:"介绍",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#介绍","aria-hidden":"true"},"#"),l(" 介绍")],-1),u=e("p",null,"作为开发人员,您可能对 Crawlab 是如何工作的感兴趣。本章节将介绍相关的基础知识以及背后的技术。",-1),_=e("p",null,"本章节包含以下主题:",-1),h=e("li",null,[e("a",{href:"architecture"},"架构")],-1),f=e("a",{href:"node"},"节点",-1),m=e("a",{href:"database"},"数据库",-1),p=e("a",{href:"filesystem"},"文件系统",-1);function x(b,k){const t=i("RouterLink");return s(),d("div",null,[c,u,_,e("ul",null,[h,e("li",null,[f,e("ul",null,[e("li",null,[n(t,{to:"/zh/principle/node/master-node.html"},{default:o(()=>[l("主节点")]),_:1})]),e("li",null,[n(t,{to:"/zh/principle/node/worker-node.html"},{default:o(()=>[l("工作节点")]),_:1})]),e("li",null,[n(t,{to:"/zh/principle/node/node-communication.html"},{default:o(()=>[l("节点通信")]),_:1})])])]),e("li",null,[m,e("ul",null,[e("li",null,[n(t,{to:"/zh/principle/database/mongodb.html"},{default:o(()=>[l("MongoDB")]),_:1})])])]),e("li",null,[p,e("ul",null,[e("li",null,[n(t,{to:"/zh/principle/filesystem/seaweedfs.html"},{default:o(()=>[l("SeaweedFS")]),_:1})])])])])])}const z=a(r,[["render",x],["__file","index.html.vue"]]);export{z as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-0916704b.js: -------------------------------------------------------------------------------- 1 | import{_ as t,Z as c,$ as n,a0 as e,a3 as s}from"./framework-64cb0dab.js";const a={},o=e("h1",{id:"schedule",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#schedule","aria-hidden":"true"},"#"),s(" Schedule")],-1),d=e("p",null,"🚧 Under construction...",-1),r=[o,d];function _(i,l){return c(),n("div",null,r)}const u=t(a,[["render",_],["__file","index.html.vue"]]);export{u as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-0ff90bed.js: -------------------------------------------------------------------------------- 1 | import{_ as t,Z as n,$ as r,a0 as e,a3 as s}from"./framework-64cb0dab.js";const a={},c=e("h1",{id:"spider",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#spider","aria-hidden":"true"},"#"),s(" Spider")],-1),o=e("p",null,"🚧 Under construction...",-1),d=[c,o];function i(_,l){return n(),r("div",null,d)}const f=t(a,[["render",i],["__file","index.html.vue"]]);export{f as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-18aa5aaa.js: -------------------------------------------------------------------------------- 1 | import{_ as o,Z as t,$ as s,a0 as e,a3 as c}from"./framework-64cb0dab.js";const n={},r=e("h1",{id:"core-modules",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#core-modules","aria-hidden":"true"},"#"),c(" Core Modules")],-1),a=e("p",null,"🚧 Under construction...",-1),d=[r,a];function _(i,l){return t(),s("div",null,d)}const u=o(n,[["render",_],["__file","index.html.vue"]]);export{u as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-1fad8705.js: -------------------------------------------------------------------------------- 1 | import{_ as r,E as s,Z as d,$ as i,a0 as e,a1 as t,a2 as a,a3 as n}from"./framework-64cb0dab.js";const c={},l=e("h1",{id:"node",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#node","aria-hidden":"true"},"#"),n(" Node")],-1),u=e("p",null,"A node is an instance that executes and manages crawler programs. It is the basic unit of resources in a distributed system.",-1),_=e("p",null,"There are two types of nodes:",-1);function h(m,p){const o=s("RouterLink");return d(),i("div",null,[l,u,_,e("ul",null,[e("li",null,[t(o,{to:"/en/principle/node/master-node.html"},{default:a(()=>[n("Master Node")]),_:1})]),e("li",null,[t(o,{to:"/en/principle/node/worker-node.html"},{default:a(()=>[n("Worker Node")]),_:1})])]),e("p",null,[n("If you wonder how nodes communicate between each other, you can refer to "),t(o,{to:"/en/principle/node/node-communication.html"},{default:a(()=>[n("Node Communication")]),_:1}),n(".")])])}const x=r(c,[["render",h],["__file","index.html.vue"]]);export{x as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-28edcee9.js: -------------------------------------------------------------------------------- 1 | import{_ as n,Z as t,$ as o,a0 as e,a3 as r}from"./framework-64cb0dab.js";const a={},c=e("h1",{id:"frontend",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#frontend","aria-hidden":"true"},"#"),r(" Frontend")],-1),s=e("p",null,"🚧 Under construction...",-1),d=[c,s];function _(i,l){return t(),o("div",null,d)}const f=n(a,[["render",_],["__file","index.html.vue"]]);export{f as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-2a5cfdca.js: -------------------------------------------------------------------------------- 1 | import{_ as t,E as n,Z as o,$ as c,a1 as r}from"./framework-64cb0dab.js";const _={};function a(s,d){const e=n("Redirect");return o(),c("div",null,[r(e,{path:"/en/develop/introduction"})])}const l=t(_,[["render",a],["__file","index.html.vue"]]);export{l as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-367152ee.js: -------------------------------------------------------------------------------- 1 | import{_ as a,E as r,Z as c,$ as i,a0 as e,a1 as o,a2 as l,a3 as n}from"./framework-64cb0dab.js";const d={},s=e("h1",{id:"节点",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#节点","aria-hidden":"true"},"#"),n(" 节点")],-1),_=e("p",null,"节点是可以管理和执行爬虫程序的实体,是分布式系统资源的基础单位。",-1),u=e("p",null,"有两种节点类型:",-1);function h(p,m){const t=r("RouterLink");return c(),i("div",null,[s,_,u,e("ul",null,[e("li",null,[o(t,{to:"/zh/principle/node/master-node.html"},{default:l(()=>[n("主节点")]),_:1})]),e("li",null,[o(t,{to:"/zh/principle/node/worker-node.html"},{default:l(()=>[n("工作节点")]),_:1})])]),e("p",null,[n("如果您希望了解节点间如何通信,请参考"),o(t,{to:"/zh/principle/node/node-communication.html"},{default:l(()=>[n("节点通信")]),_:1}),n("。")])])}const x=a(d,[["render",h],["__file","index.html.vue"]]);export{x as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-3de8c182.js: -------------------------------------------------------------------------------- 1 | import{_ as o,E as n,Z as s,$ as r,a0 as a,a3 as e,a1 as c,a2 as d}from"./framework-64cb0dab.js";const i={},l=a("h1",{id:"database",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#database","aria-hidden":"true"},"#"),e(" Database")],-1);function _(h,p){const t=n("RouterLink");return s(),r("div",null,[l,a("p",null,[e("Crawlab uses "),c(t,{to:"/en/principle/database/mongodb.html"},{default:d(()=>[e("MongoDB")]),_:1}),e(", an open-source high-performance NoSQL database, as its operational database.")])])}const m=o(i,[["render",_],["__file","index.html.vue"]]);export{m as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-486b9c33.js: -------------------------------------------------------------------------------- 1 | import{_ as e,Z as a,$ as r,a4 as t}from"./framework-64cb0dab.js";const n="/assets/crawlab-architecture-698601e4.png",s={},c=t('

架构

以下是 Crawlab 的架构图。

Architecture

作为分布式系统,Crawlab 由几个模块组成,其中包括 主节点工作节点数据库文件系统 以及 前端。每个模块(目前除了节点)都具有可扩展性, 因此整个分布式系统能够被灵活扩展以支持高性能需求。

例如,爬虫抓取任务被分配到工作节点集群,然后工作节点集群可以根据资源需求的变化来调整节点数量。

',5),o=[c];function d(i,h){return a(),r("div",null,o)}const f=e(s,[["render",d],["__file","index.html.vue"]]);export{f as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-4a44389b.js: -------------------------------------------------------------------------------- 1 | const t=JSON.parse('{"key":"v-8daa1a0e","path":"/","title":"","lang":"en-US","frontmatter":{"home":true,"redirectTo":"https://docs.crawlab.cn/zh/","description":"","head":[["script",{},"{const anchor = window.location.hash.substring(1);location.href=`https://docs.crawlab.cn/zh/${anchor? `#${anchor}`: \\"\\"}`;}"],["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://docs.crawlab.cn/zh/"}],["meta",{"property":"og:url","content":"https://docs.crawlab.cn/"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2023-06-25T06:45:43.000Z"}],["meta",{"property":"article:author","content":"Marvin Zhang"}],["meta",{"property":"article:modified_time","content":"2023-06-25T06:45:43.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"\\"}"]]},"headers":[],"git":{"createdTime":1635992715000,"updatedTime":1687675543000,"contributors":[{"name":"Marvin Zhang","email":"tikazyq@163.com","commits":7}]},"readingTime":{"minutes":0.02,"words":5},"filePathRelative":"README.md","localizedDate":"November 4, 2021","autoDesc":true}');export{t as data}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-55c028bc.js: -------------------------------------------------------------------------------- 1 | import{_ as s,E as n,Z as o,$ as r,a0 as e,a3 as t,a1 as c,a2 as l}from"./framework-64cb0dab.js";const i="/assets/file-management-1145ded8.png",_={},d=e("h1",{id:"文件系统",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#文件系统","aria-hidden":"true"},"#"),t(" 文件系统")],-1),h=e("p",null,"以下是它实现主节点、工作节点文件同步的工作原理。",-1),m=e("p",null,[e("img",{src:i,alt:""})],-1);function p(f,u){const a=n("RouterLink");return o(),r("div",null,[d,e("p",null,[t("Crawlab 使用 "),c(a,{to:"/zh/principle/filesystem/seaweedfs.html"},{default:l(()=>[t("SeaweedFS")]),_:1}),t(" 作为分布式文件系统。")]),h,m])}const k=s(_,[["render",p],["__file","index.html.vue"]]);export{k as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-57bd1c3b.js: -------------------------------------------------------------------------------- 1 | import{_ as t,Z as c,$ as n,a0 as e,a3 as s}from"./framework-64cb0dab.js";const a={},o=e("h1",{id:"schedule",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#schedule","aria-hidden":"true"},"#"),s(" Schedule")],-1),d=e("p",null,"🚧 Under construction...",-1),r=[o,d];function _(i,l){return c(),n("div",null,r)}const u=t(a,[["render",_],["__file","index.html.vue"]]);export{u as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-59f4c84b.js: -------------------------------------------------------------------------------- 1 | import{_ as t,Z as n,$ as a,a0 as e,a3 as c}from"./framework-64cb0dab.js";const o={},s=e("h1",{id:"开发插件",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#开发插件","aria-hidden":"true"},"#"),c(" 开发插件")],-1),r=e("p",null,"🚧 Under construction",-1),_=[s,r];function d(i,l){return n(),a("div",null,_)}const f=t(o,[["render",d],["__file","index.html.vue"]]);export{f as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-5db672e4.js: -------------------------------------------------------------------------------- 1 | import{_ as n,Z as t,$ as o,a0 as e,a3 as r}from"./framework-64cb0dab.js";const a={},c=e("h1",{id:"frontend",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#frontend","aria-hidden":"true"},"#"),r(" Frontend")],-1),s=e("p",null,"🚧 Under construction...",-1),d=[c,s];function _(i,l){return t(),o("div",null,d)}const f=n(a,[["render",_],["__file","index.html.vue"]]);export{f as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-6992020b.js: -------------------------------------------------------------------------------- 1 | import{_ as n,E as o,Z as r,$ as l,a0 as e,a1 as s,a2 as c,a3 as a}from"./framework-64cb0dab.js";const _={},i=e("h1",{id:"介绍",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#介绍","aria-hidden":"true"},"#"),a(" 介绍")],-1),d=e("p",null,"Crawlab 用户和开发者可以通过提供开放的 API 来集成自己的数据到 Crawlab 平台。",-1),h=e("p",null,"请参考以下内容。",-1);function u(f,p){const t=o("RouterLink");return r(),l("div",null,[i,d,h,e("ul",null,[e("li",null,[s(t,{to:"/zh/api/api-reference.html"},{default:c(()=>[a("API 参考文档")]),_:1})])])])}const x=n(_,[["render",u],["__file","index.html.vue"]]);export{x as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-7422fbd8.js: -------------------------------------------------------------------------------- 1 | import{_ as t,Z as n,$ as r,a0 as e,a3 as s}from"./framework-64cb0dab.js";const a={},c=e("h1",{id:"spider",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#spider","aria-hidden":"true"},"#"),s(" Spider")],-1),o=e("p",null,"🚧 Under construction...",-1),d=[c,o];function i(_,l){return n(),r("div",null,d)}const f=t(a,[["render",i],["__file","index.html.vue"]]);export{f as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-857c4929.js: -------------------------------------------------------------------------------- 1 | import{_ as e,Z as a,$ as r,a4 as t}from"./framework-64cb0dab.js";const s="/assets/crawlab-architecture-698601e4.png",o={},i=t('

Architecture

The architecture diagram of Crawlab is as below.

Architecture

As a distributed system, Crawlab is consisted of several modules (or layers), including Master Node, Worker Nodes, Database , File System and Frontend. Each module (apart from Master Node for now) is scalable so that the whole distributed system can be flexibly scaled in order to support high-performance requirements.

For example, crawling tasks are assigned to the Worker Node Cluster which can adjust itself with suitable number of nodes if resources needed change.

',5),c=[i];function n(d,h){return a(),r("div",null,c)}const u=e(o,[["render",n],["__file","index.html.vue"]]);export{u as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-8acf3abb.js: -------------------------------------------------------------------------------- 1 | const e=JSON.parse('{"key":"v-11bb1e1e","path":"/zh/guide/token/","title":"","lang":"zh-CN","frontmatter":{"description":"","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://docs.crawlab.cn/en/guide/token/"}],["meta",{"property":"og:url","content":"https://docs.crawlab.cn/zh/guide/token/"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2022-10-08T03:05:23.000Z"}],["meta",{"property":"article:author","content":"Marvin Zhang"}],["meta",{"property":"article:modified_time","content":"2022-10-08T03:05:23.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2022-10-08T03:05:23.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"Marvin Zhang\\"}]}"]]},"headers":[],"git":{"createdTime":1665198323000,"updatedTime":1665198323000,"contributors":[{"name":"Marvin Zhang","email":"tikazyq@163.com","commits":1}]},"readingTime":{"minutes":0,"words":0},"filePathRelative":"zh/guide/token/README.md","localizedDate":"2022年10月8日","autoDesc":true}');export{e as data}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-91bdac09.js: -------------------------------------------------------------------------------- 1 | import{_ as o,E as n,Z as r,$ as s,a0 as a,a3 as e,a1 as c,a2 as d}from"./framework-64cb0dab.js";const i={},l=a("h1",{id:"数据库",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#数据库","aria-hidden":"true"},"#"),e(" 数据库")],-1);function _(h,m){const t=n("RouterLink");return r(),s("div",null,[l,a("p",null,[e("Crawlab 使用开源的高性能 NoSQL 数据库 "),c(t,{to:"/zh/principle/database/mongodb.html"},{default:d(()=>[e("MongoDB")]),_:1}),e(" 作为运行数据库。")])])}const f=o(i,[["render",_],["__file","index.html.vue"]]);export{f as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-9d4f6672.js: -------------------------------------------------------------------------------- 1 | import{_ as t,Z as a,$ as s,a0 as e,a3 as n}from"./framework-64cb0dab.js";const c={},o=e("h1",{id:"task",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#task","aria-hidden":"true"},"#"),n(" Task")],-1),r=e("p",null,"🚧 Under construction...",-1),_=[o,r];function d(i,l){return a(),s("div",null,_)}const f=t(c,[["render",d],["__file","index.html.vue"]]);export{f as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-9d65db99.js: -------------------------------------------------------------------------------- 1 | import{_ as e,Z as t,$ as c}from"./framework-64cb0dab.js";const n={};function _(r,o){return t(),c("div")}const a=e(n,[["render",_],["__file","index.html.vue"]]);export{a as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-a89f5340.js: -------------------------------------------------------------------------------- 1 | const e=JSON.parse('{"key":"v-62f5f77f","path":"/en/develop/","title":"","lang":"en-US","frontmatter":{"description":"","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://docs.crawlab.cn/zh/develop/"}],["meta",{"property":"og:url","content":"https://docs.crawlab.cn/en/develop/"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2021-11-14T10:35:32.000Z"}],["meta",{"property":"article:author","content":"Marvin Zhang"}],["meta",{"property":"article:modified_time","content":"2021-11-14T10:35:32.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2021-11-14T10:35:32.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"Marvin Zhang\\"}]}"]]},"headers":[],"git":{"createdTime":1636800408000,"updatedTime":1636886132000,"contributors":[{"name":"Marvin Zhang","email":"tikazyq@163.com","commits":2}]},"readingTime":{"minutes":0.01,"words":4},"filePathRelative":"en/develop/README.md","localizedDate":"November 13, 2021","autoDesc":true}');export{e as data}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-ad346522.js: -------------------------------------------------------------------------------- 1 | import{_ as r,E as c,Z as i,$ as n,a0 as a,a3 as e,a1 as d,a2 as o,a4 as s}from"./framework-64cb0dab.js";const h={},l=a("h1",{id:"项目",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#项目","aria-hidden":"true"},"#"),e(" 项目")],-1),_=s('

关联爬虫

您可以将一个爬虫与一个项目进行关联,通过

  1. 在爬虫详情页 项目 字段中选择项目,或
  2. 在创建新爬虫对话框中的 项目 字段中选择项目

查看爬虫

在项目详情页中导航到 爬虫 标签。

',5);function u(p,f){const t=c("RouterLink");return i(),n("div",null,[l,a("p",null,[e("项目是通常是一组紧密相关或抓取同类网站数据的 "),d(t,{to:"/zh/guide/spider/"},{default:o(()=>[e("爬虫")]),_:1}),e("。因此,您可以将项目作为给爬虫分组的方式。通过这种方式,爬虫能够被更好的管理。")]),a("p",null,[e("项目跟 "),d(t,{to:"/zh/guide/spider/"},{default:o(()=>[e("爬虫")]),_:1}),e(" 是一对多的关系。")]),_])}const m=r(h,[["render",u],["__file","index.html.vue"]]);export{m as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-ad8b3a72.js: -------------------------------------------------------------------------------- 1 | import{_ as e,Z as t,$ as c}from"./framework-64cb0dab.js";const n={};function _(r,o){return t(),c("div")}const a=e(n,[["render",_],["__file","index.html.vue"]]);export{a as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-b2ce7e7f.js: -------------------------------------------------------------------------------- 1 | import{_ as n,E as a,Z as o,$ as i,a0 as e,a3 as t,a1 as r,a2 as l}from"./framework-64cb0dab.js";const d="/assets/file-management-1145ded8.png",c={},_=e("h1",{id:"file-system",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#file-system","aria-hidden":"true"},"#"),t(" File System")],-1),m=e("p",null,"Below is how it works with files synchronization between the master node and worker nodes.",-1),h=e("p",null,[e("img",{src:d,alt:""})],-1);function f(u,p){const s=a("RouterLink");return o(),i("div",null,[_,e("p",null,[t("Crawlab uses "),r(s,{to:"/en/principle/filesystem/seaweedfs.html"},{default:l(()=>[t("SeaweedFS")]),_:1}),t(" as its distributed file system.")]),m,h])}const x=n(c,[["render",f],["__file","index.html.vue"]]);export{x as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-bf4871ad.js: -------------------------------------------------------------------------------- 1 | import{_ as e,E as o,Z as u,$ as s,a0 as l,a1 as a,a2 as d,a3 as n}from"./framework-64cb0dab.js";const i={},r=l("h1",{id:"安装",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#安装","aria-hidden":"true"},"#"),n(" 安装")],-1),c=l("p",null,"安装 Crawlab 的方式有多种,您可以参考下面的汇总表,选择最适合您的方式。",-1),_=l("thead",null,[l("tr",null,[l("th",null,"安装方式"),l("th",null,"推荐环境"),l("th",null,"推荐用户")])],-1),h=l("td",null,"演示 / 生产 (节点数不大于 10)",-1),f=l("td",null,[l("ol",null,[l("li",null,"小型集群需求"),l("li",null,"熟悉 Docker"),l("li",null,"要求最少量的维护")])],-1),m=l("tr",null,[l("td",null,"Kubernetes (待更新)"),l("td",null,"生产 (节点数大于 10)"),l("td",null,[l("ol",null,[l("li",null,"中大型集群需求"),l("li",null,"可扩展性是重要因素"),l("li",null,"熟悉 Kubernetes 或编排技术"),l("li",null,"拥有专业的运维资源")])])],-1),x=l("tr",null,[l("td",null,"直接部署 (待更新)"),l("td",null,"演示 / 实验"),l("td",null,[l("ol",null,[l("li",null,"自定义开发需求"),l("li",null,"熟悉 Vue.js 和 Go"),l("li",null,"愿意操作源码")])])],-1);function k(p,b){const t=o("RouterLink");return u(),s("div",null,[r,c,l("table",null,[_,l("tbody",null,[l("tr",null,[l("td",null,[a(t,{to:"/zh/guide/installation/docker.html"},{default:d(()=>[n("Docker")]),_:1})]),h,f]),m,x])])])}const v=e(i,[["render",k],["__file","index.html.vue"]]);export{v as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-cdbe65aa.js: -------------------------------------------------------------------------------- 1 | import{_ as t,E as n,Z as o,$ as c,a1 as r}from"./framework-64cb0dab.js";const _={};function a(s,d){const e=n("Redirect");return o(),c("div",null,[r(e,{path:"/zh/develop/introduction"})])}const l=t(_,[["render",a],["__file","index.html.vue"]]);export{l as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-d1747809.js: -------------------------------------------------------------------------------- 1 | import{_ as o,E as a,Z as r,$ as i,a0 as e,a1 as l,a2 as s,a3 as t}from"./framework-64cb0dab.js";const c={},d=e("h1",{id:"introduction",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#introduction","aria-hidden":"true"},"#"),t(" Introduction")],-1),_=e("p",null,"Crawlab users and developers are allowed integrate their own data into the Crawlab platform. This can be achieved by providing open APIs for data integration.",-1),u=e("p",null,"Please refer to below for more information.",-1);function h(f,p){const n=a("RouterLink");return r(),i("div",null,[d,_,u,e("ul",null,[e("li",null,[l(n,{to:"/en/api/api-reference.html"},{default:s(()=>[t("API Reference")]),_:1})])])])}const x=o(c,[["render",h],["__file","index.html.vue"]]);export{x as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-d4ca8835.js: -------------------------------------------------------------------------------- 1 | const e=JSON.parse('{"key":"v-39551954","path":"/en/guide/token/","title":"","lang":"en-US","frontmatter":{"description":"","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://docs.crawlab.cn/zh/guide/token/"}],["meta",{"property":"og:url","content":"https://docs.crawlab.cn/en/guide/token/"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2022-10-08T03:05:23.000Z"}],["meta",{"property":"article:author","content":"Marvin Zhang"}],["meta",{"property":"article:modified_time","content":"2022-10-08T03:05:23.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2022-10-08T03:05:23.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"Marvin Zhang\\"}]}"]]},"headers":[],"git":{"createdTime":1665198323000,"updatedTime":1665198323000,"contributors":[{"name":"Marvin Zhang","email":"tikazyq@163.com","commits":1}]},"readingTime":{"minutes":0,"words":0},"filePathRelative":"en/guide/token/README.md","localizedDate":"October 8, 2022","autoDesc":true}');export{e as data}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-d6e1badb.js: -------------------------------------------------------------------------------- 1 | import{_ as e,Z as t,$ as c}from"./framework-64cb0dab.js";const n={};function _(r,o){return t(),c("div")}const a=e(n,[["render",_],["__file","index.html.vue"]]);export{a as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-dbb7f701.js: -------------------------------------------------------------------------------- 1 | import{_ as t,Z as n,$ as a,a0 as e,a3 as c}from"./framework-64cb0dab.js";const o={},s=e("h1",{id:"核心模块",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#核心模块","aria-hidden":"true"},"#"),c(" 核心模块")],-1),r=e("p",null,"🚧 Under construction...",-1),_=[s,r];function d(i,l){return n(),a("div",null,_)}const f=t(o,[["render",d],["__file","index.html.vue"]]);export{f as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-e5dd1097.js: -------------------------------------------------------------------------------- 1 | import{_ as t,Z as a,$ as s,a0 as e,a3 as n}from"./framework-64cb0dab.js";const c={},o=e("h1",{id:"task",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#task","aria-hidden":"true"},"#"),n(" Task")],-1),r=e("p",null,"🚧 Under construction...",-1),_=[o,r];function d(i,l){return a(),s("div",null,_)}const f=t(c,[["render",d],["__file","index.html.vue"]]);export{f as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-e98d2633.js: -------------------------------------------------------------------------------- 1 | import{_ as e,Z as a,$ as d,a4 as i}from"./framework-64cb0dab.js";const o={},c=i('

用户

Crawlab 中的用户等同于大多数管理系统中的用户账户。用户账户能被创建、更新、删除。

管理用户

默认情况下,一个 管理账户 将在 Crawlab 初始化时被创建。以下是它默认用户名密码。

创建用户

  1. 导航到 用户列表 页面,再点击左上方的 新建用户 按钮
  2. 输入 用户名密码 等相关信息
  3. 点击 确认

更改用户密码

  1. 导航到用户详情页
  2. 点击 更改密码 按钮
  3. 输入新密码并点击确认
',9),l=[c];function r(n,t){return a(),d("div",null,l)}const s=e(o,[["render",r],["__file","index.html.vue"]]);export{s as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-eba9312e.js: -------------------------------------------------------------------------------- 1 | import{_ as e,Z as t,$ as c}from"./framework-64cb0dab.js";const n={};function _(r,o){return t(),c("div")}const a=e(n,[["render",_],["__file","index.html.vue"]]);export{a as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/index.html-f19b837b.js: -------------------------------------------------------------------------------- 1 | import{_ as e,Z as t,$ as c}from"./framework-64cb0dab.js";const n={};function _(r,o){return t(),c("div")}const a=e(n,[["render",_],["__file","index.html.vue"]]);export{a as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/init-77b53fdd.js: -------------------------------------------------------------------------------- 1 | function t(e,a){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(a).domain(e);break}return this}export{t as i}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/install-form-2753ef8e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/install-form-2753ef8e.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/install-form-e19dd765.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/install-form-e19dd765.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/introduction.html-655140dd.js: -------------------------------------------------------------------------------- 1 | import{_ as t,Z as n,$ as o,a0 as e,a3 as c}from"./framework-64cb0dab.js";const a={},r=e("h1",{id:"介绍",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#介绍","aria-hidden":"true"},"#"),c(" 介绍")],-1),s=e("p",null,"🚧 Under construction",-1),_=[r,s];function d(i,l){return n(),o("div",null,_)}const u=t(a,[["render",d],["__file","introduction.html.vue"]]);export{u as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/introduction.html-7990588f.js: -------------------------------------------------------------------------------- 1 | import{_ as e,Z as n,$ as o,a0 as t,a3 as c}from"./framework-64cb0dab.js";const r={},a=t("h1",{id:"introduction",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#introduction","aria-hidden":"true"},"#"),c(" Introduction")],-1),i=t("p",null,"🚧 Under construction",-1),s=[a,i];function d(_,u){return n(),o("div",null,s)}const h=e(r,[["render",d],["__file","introduction.html.vue"]]);export{h as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/is_dark-fb214718.js: -------------------------------------------------------------------------------- 1 | import{aF as c,aG as a}from"./mermaid.core-db7b7a77.js";const e=n=>{const{r,g:t,b:o}=c.parse(n),s=.2126*a.channel.toLinear(r)+.7152*a.channel.toLinear(t)+.0722*a.channel.toLinear(o);return a.lang.round(s)},i=e,l=n=>i(n)>=.5,u=l,h=n=>!u(n),L=h;export{L as i}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/umeng.js: -------------------------------------------------------------------------------- 1 | (function (w, d, s, q, i) { 2 | w[q] = w[q] || [] 3 | var f = d.getElementsByTagName(s)[0], j = d.createElement(s) 4 | j.async = true 5 | j.id = 'beacon-aplus' 6 | j.src = 'https://d.alicdn.com/alilog/mlog/aplus/' + i + '.js' 7 | f.parentNode.insertBefore(j, f) 8 | })(window, document, 'script', 'aplus_queue', '203467608'); 9 | 10 | (async function () { 11 | //集成应用的appKey 12 | window.aplus_queue.push({ 13 | action: 'aplus.setMetaInfo', 14 | arguments: ['appKey', '6193a6b7e014255fcb7d60b8'] 15 | }) 16 | 17 | //发送pv 18 | window.aplus_queue.push({ 19 | action: 'aplus.sendPV', 20 | arguments: [{ is_auto: true }, {}] 21 | }) 22 | 23 | })() 24 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/kubernetes.html-2e08a06f.js: -------------------------------------------------------------------------------- 1 | import{_ as t,Z as n,$ as s,a0 as e,a3 as r}from"./framework-64cb0dab.js";const a={},c=e("h1",{id:"kubernetes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#kubernetes","aria-hidden":"true"},"#"),r(" Kubernetes")],-1),o=e("p",null,"🚧 Under construction...",-1),_=[c,o];function d(i,u){return n(),s("div",null,_)}const h=t(a,[["render",d],["__file","kubernetes.html.vue"]]);export{h as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/kubernetes.html-62b17d6d.js: -------------------------------------------------------------------------------- 1 | import{_ as t,Z as n,$ as s,a0 as e,a3 as r}from"./framework-64cb0dab.js";const a={},c=e("h1",{id:"kubernetes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#kubernetes","aria-hidden":"true"},"#"),r(" Kubernetes")],-1),o=e("p",null,"🚧 Under construction...",-1),_=[c,o];function d(i,u){return n(),s("div",null,_)}const h=t(a,[["render",d],["__file","kubernetes.html.vue"]]);export{h as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/license.html-943398ca.js: -------------------------------------------------------------------------------- 1 | import{_ as t,E as r,Z as o,$ as s,a0 as e,a3 as n,a1 as c}from"./framework-64cb0dab.js";const l={},i=e("h1",{id:"许可证",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#许可证","aria-hidden":"true"},"#"),n(" 许可证")],-1),_=e("p",null,"Crawlab 专业版是一个商业产品。您需要一个有效的许可证才能使用它。",-1),d=e("h2",{id:"如何购买",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#如何购买","aria-hidden":"true"},"#"),n(" 如何购买")],-1),h=e("p",null,"您可以通过以下方式购买许可证:",-1),p={href:"https://www.crawlab.cn/prices",target:"_blank",rel:"noopener noreferrer"},u=e("li",null,"联系我们:微信客服账号 tikazyq1",-1);function f(w,m){const a=r("ExternalLinkIcon");return o(),s("div",null,[i,_,d,h,e("ol",null,[e("li",null,[n("在线购买:"),e("a",p,[n("https://www.crawlab.cn/prices"),c(a)])]),u])])}const b=t(l,[["render",f],["__file","license.html.vue"]]);export{b as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/license.html-af6ec994.js: -------------------------------------------------------------------------------- 1 | import{_ as o,E as t,Z as c,$ as s,a0 as e,a3 as n,a1 as r}from"./framework-64cb0dab.js";const l={},i=e("h1",{id:"license",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#license","aria-hidden":"true"},"#"),n(" License")],-1),h=e("p",null,"Crawlab Professional Edition is a commercial product. You need a valid license to use it.",-1),d=e("h2",{id:"how-to-purchase",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#how-to-purchase","aria-hidden":"true"},"#"),n(" How to Purchase")],-1),_=e("p",null,"You can purchase a license through the following methods:",-1),u={href:"https://www.crawlab.cn/en/prices",target:"_blank",rel:"noopener noreferrer"},p=e("li",null,"Contact us: WeChat customer service account tikazyq1",-1);function f(w,m){const a=t("ExternalLinkIcon");return c(),s("div",null,[i,h,d,_,e("ol",null,[e("li",null,[n("Online purchase: "),e("a",u,[n("https://www.crawlab.cn/en/prices"),r(a)])]),p])])}const b=o(l,[["render",f],["__file","license.html.vue"]]);export{b as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/line-f5d60f93.js: -------------------------------------------------------------------------------- 1 | import{a as h}from"./array-9f3ba611.js";import{w as d,c as o}from"./path-53f90ab3.js";import{o as v}from"./mermaid.core-db7b7a77.js";function w(t){return t[0]}function b(t){return t[1]}function P(t,u){var s=o(!0),i=null,l=v,r=null,m=d(e);t=typeof t=="function"?t:t===void 0?w:o(t),u=typeof u=="function"?u:u===void 0?b:o(u);function e(n){var f,g=(n=h(n)).length,p,c=!1,a;for(i==null&&(r=l(a=m())),f=0;f<=g;++f)!(f[e("worker nodes")]),_:1}),e(", assigns and schedule crawling tasks to worker nodes, and receives or transfers messages from or to worker nodes.")]),h,t(s,{id:"mermaid-9",code:"eJxdiTEKgDAQBHtfcV9RsbBQxKQ7LGI8oggxXFTw94ZoCt1iYGcMKzeDLDII88f4/Eb5nRjabaIYAJRbsK+EhLyrh9cZdhpN35UgiE/i5P1lNYqA6BdNKWjeLJYB/7Arv6IM+AayU3YDGvcv7g=="})])}const g=n(m,[["render",_],["__file","master-node.html.vue"]]);export{g as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/master-node.html-9559d22f.js: -------------------------------------------------------------------------------- 1 | import{_ as s,E as t,Z as c,$ as i,a0 as o,a3 as e,a1 as a,a2 as d}from"./framework-64cb0dab.js";const l={},_=o("h1",{id:"主节点",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#主节点","aria-hidden":"true"},"#"),e(" 主节点")],-1),m=o("p",null,"主节点由很多自模块组成,相比于工作节点更为复杂。您可以参考下图查看主节点的自模块。",-1);function h(p,u){const n=t("RouterLink"),r=t("Mermaid");return c(),i("div",null,[_,o("p",null,[e("主节点是 Crawlab 分布式系统中的中心部分,主要负责管理"),a(n,{to:"/zh/principle/node/worker-node.html"},{default:d(()=>[e("工作节点")]),_:1}),e("、派发爬虫任务、以及接受发送信息给工作节点。")]),m,a(r,{id:"mermaid-9",code:"eJxLL0osyFAIceJSAILi0iQI/8mO3S+6mp437QQLKygkFmRGB7kGhyg4BnjGQsXSiwqSo9ODApwVglOLylKLYOLFlXnJ0cFAAiyemZwKk0guys+LdgYS6BIlicXZ0SFAAlUiNS+FCwBD4DJJ"})])}const f=s(l,[["render",h],["__file","master-node.html.vue"]]);export{f as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/menu-1400c7c5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/menu-1400c7c5.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/menu-36af1ebc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/menu-36af1ebc.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/metric-source-cb47f276.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/metric-source-cb47f276.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/metrics-detail-1d5de9b7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/metrics-detail-1d5de9b7.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/metrics-detail-37090ce4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/metrics-detail-37090ce4.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/metrics-overview-292b3d2d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/metrics-overview-292b3d2d.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/metrics-overview-a72a026d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/metrics-overview-a72a026d.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/metrics-panel-320bcc75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/metrics-panel-320bcc75.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/metrics-panel-4f25c8a9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/metrics-panel-4f25c8a9.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/mobile-config-4a8a8541.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/mobile-config-4a8a8541.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/mobile-config-d191cff8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/mobile-config-d191cff8.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/mongo-data-source-f5635164.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/mongo-data-source-f5635164.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/mongo-form-6a7401f4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/mongo-form-6a7401f4.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/mongodb.html-e4e8655b.js: -------------------------------------------------------------------------------- 1 | import{_ as a,E as t,Z as r,$ as s,a0 as e,a3 as o,a1 as c}from"./framework-64cb0dab.js";const l={},_=e("h1",{id:"mongodb",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#mongodb","aria-hidden":"true"},"#"),o(" MongoDB")],-1),d={href:"https://mongodb.com",target:"_blank",rel:"noopener noreferrer"},m=e("p",null,"Crawlab 选择使用 MongoDB 的最大原因是灵活性。因为 Crawlab 正在快速开发中,很多时间数据模型与字段需要变更。因此,MongoDB 是最优选择。",-1);function h(i,f){const n=t("ExternalLinkIcon");return r(),s("div",null,[_,e("p",null,[e("a",d,[o("MongoDB"),c(n)]),o(" 是最常用的 NoSQL 数据库之一,其无结构 (schemaless) 特性让开发者不用担心由数据字段发生变更而引发的数据库结构迁移,使得开发者快速开发程序应用。")]),m])}const p=a(l,[["render",h],["__file","mongodb.html.vue"]]);export{p as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/new-data-source-button-d82fcfd4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/new-data-source-button-d82fcfd4.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/node-communication-2998ed46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/node-communication-2998ed46.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/node-communication.html-5f627d1f.js: -------------------------------------------------------------------------------- 1 | import{_ as t,E as a,Z as r,$ as c,a0 as e,a3 as n,a1 as s}from"./framework-64cb0dab.js";const _="/assets/node-communication-2998ed46.png",i={},l=e("h1",{id:"节点通信",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#节点通信","aria-hidden":"true"},"#"),n(" 节点通信")],-1),d={href:"https://grpc.io",target:"_blank",rel:"noopener noreferrer"},m=e("p",null,"下图展示了 Crawlab 中节点通信的原理。",-1),h=e("p",null,[e("img",{src:_,alt:""})],-1);function p(u,f){const o=a("ExternalLinkIcon");return r(),c("div",null,[l,e("p",null,[n("主节点通过高性能 RPC 框架 "),e("a",d,[n("gRPC"),s(o)]),n(" 与工作节点进行通信。")]),m,h])}const g=t(i,[["render",p],["__file","node-communication.html.vue"]]);export{g as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/node-communication.html-6f459ea0.js: -------------------------------------------------------------------------------- 1 | import{_ as t,E as a,Z as r,$ as c,a0 as e,a3 as o,a1 as s}from"./framework-64cb0dab.js";const i="/assets/node-communication-2998ed46.png",m={},d=e("h1",{id:"node-communication",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#node-communication","aria-hidden":"true"},"#"),o(" Node Communication")],-1),_={href:"https://grpc.io/",target:"_blank",rel:"noopener noreferrer"},h=e("p",null,"The diagram below shows how the node communication works in Crawlab.",-1),l=e("p",null,[e("img",{src:i,alt:""})],-1);function u(p,f){const n=a("ExternalLinkIcon");return r(),c("div",null,[d,e("p",null,[o("The master node communicates with worker nodes through "),e("a",_,[o("gRPC"),s(n)]),o(", a high-performance RPC framework.")]),h,l])}const k=t(m,[["render",u],["__file","node-communication.html.vue"]]);export{k as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/notification-menu-1d353f85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/notification-menu-1d353f85.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/notification-menu-5e1bb6db.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/notification-menu-5e1bb6db.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/permissions-create-bc9f093a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/permissions-create-bc9f093a.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/permissions-create-form-9e6e6d1b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/permissions-create-form-9e6e6d1b.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/permissions-create-form-de933f1b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/permissions-create-form-de933f1b.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/permissions-menu-cccaecf0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/permissions-menu-cccaecf0.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/quick-tutorial-1-3eecb59a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/quick-tutorial-1-3eecb59a.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/quick-tutorial-10-abdc0eaf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/quick-tutorial-10-abdc0eaf.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/quick-tutorial-2-57effcf2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/quick-tutorial-2-57effcf2.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/quick-tutorial-3-9d6cfe63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/quick-tutorial-3-9d6cfe63.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/quick-tutorial-4-d0a10ebe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/quick-tutorial-4-d0a10ebe.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/quick-tutorial-5-bc045d29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/quick-tutorial-5-bc045d29.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/quick-tutorial-6-46741e6a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/quick-tutorial-6-46741e6a.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/quick-tutorial-7-6bc2c386.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/quick-tutorial-7-6bc2c386.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/quick-tutorial-8-7d7a1ebe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/quick-tutorial-8-7d7a1ebe.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/quick-tutorial-9-aa3228b7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/quick-tutorial-9-aa3228b7.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/results-f00c6458.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/results-f00c6458.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/roles-create-form-5a649f6e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/roles-create-form-5a649f6e.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/roles-create-form-7c76fd2a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/roles-create-form-7c76fd2a.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/roles-menu-faad2118.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/roles-menu-faad2118.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/seaweedfs.html-ae9c512e.js: -------------------------------------------------------------------------------- 1 | import{_ as t,E as n,Z as o,$ as c,a0 as a,a3 as e,a1 as r}from"./framework-64cb0dab.js";const d={},l=a("h1",{id:"seaweedfs",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#seaweedfs","aria-hidden":"true"},"#"),e(" SeaweedFS")],-1),i={href:"https://github.com/chrislusf/seaweedfs",target:"_blank",rel:"noopener noreferrer"},_={href:"https://github.com/chrislusf/seaweedfs/wiki",target:"_blank",rel:"noopener noreferrer"};function f(h,u){const s=n("ExternalLinkIcon");return o(),c("div",null,[l,a("p",null,[a("a",i,[e("SeaweedFS"),r(s)]),e(" 是开源分布式文件系统,适合储存小文件。Crawlab 是一个分布式爬虫管理平台,而 SeaweedFS 可以作为节点的间脚本或程序文件同步介质。")]),a("p",null,[e("更多信息,请查看 GitHub 上的 "),a("a",_,[e("wiki"),r(s)]),e("。")])])}const w=t(d,[["render",f],["__file","seaweedfs.html.vue"]]);export{w as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/seaweedfs.html-c2751f39.js: -------------------------------------------------------------------------------- 1 | import{_ as t,E as n,Z as o,$ as i,a0 as s,a3 as e,a1 as r}from"./framework-64cb0dab.js";const c={},d=s("h1",{id:"seaweedfs",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#seaweedfs","aria-hidden":"true"},"#"),e(" SeaweedFS")],-1),l={href:"https://github.com/chrislusf/seaweedfs",target:"_blank",rel:"noopener noreferrer"},f={href:"https://github.com/chrislusf/seaweedfs/wiki",target:"_blank",rel:"noopener noreferrer"};function h(_,m){const a=n("ExternalLinkIcon");return o(),i("div",null,[d,s("p",null,[s("a",l,[e("SeaweedFS"),r(a)]),e(" is an open-source distributed file system which is good at hosting small files. As Crawlab is a distributed crawler management platform, SeaweedFS serves as the medium for synchronizing files such as scripts and program files between nodes and instances.")]),s("p",null,[e("For more details, please refer to the "),s("a",f,[e("wiki"),r(a)]),e(" on GitHub.")])])}const p=t(c,[["render",h],["__file","seaweedfs.html.vue"]]);export{p as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/selectAll-1213cfb9.js: -------------------------------------------------------------------------------- 1 | import{$ as t,a0 as n,a1 as o}from"./mermaid.core-db7b7a77.js";function a(e){return typeof e=="string"?new t([document.querySelectorAll(e)],[document.documentElement]):new t([o(e)],n)}export{a as s}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/settings-c94c850f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/settings-c94c850f.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/settings-list-037b980d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/settings-list-037b980d.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/tasks-list-372eb86b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/tasks-list-372eb86b.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/tasks-list-3797674b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/tasks-list-3797674b.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/tasks-logs-content-ab2c4c7f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/tasks-logs-content-ab2c4c7f.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/tasks-logs-content-f9931460.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/tasks-logs-content-f9931460.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/template-0df15266.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/template-0df15266.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/template-b6a592a1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/template-b6a592a1.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/uninstall-form-35021677.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/uninstall-form-35021677.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/uninstall-form-3a091683.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/assets/uninstall-form-3a091683.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/worker-node.html-4a9aa42b.js: -------------------------------------------------------------------------------- 1 | import{_ as s,E as n,Z as c,$ as d,a0 as o,a3 as e,a1 as t,a2 as i}from"./framework-64cb0dab.js";const l={},m=o("h1",{id:"工作节点",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#工作节点","aria-hidden":"true"},"#"),e(" 工作节点")],-1),_=o("p",null,"您可以查看下图工作节点自模块。",-1);function p(h,u){const a=n("RouterLink"),r=n("Mermaid");return c(),d("div",null,[m,o("p",null,[e("工作节点的主要负责任务执行,它从"),t(a,{to:"/zh/principle/node/master-node.html"},{default:i(()=>[e("主节点")]),_:1}),e("接收爬虫任务并执行目标网站抓取爬虫程序。因此,您可以将工作节点看作执行器。它们并不会处理 API 请求、任务派发、以及其他主节点上的功能。")]),_,t(r,{id:"mermaid-9",code:"eJxLL0osyFAIceJSAILi0iQI/+n2pU/2znnR1fS8aSdYRkEhsSAzOsg1OETBMcAzFiqWXlSQHJ0eFOCs4JyTmZpXAhMvrsxLjg4GEgrBqUVlmcmpMImMxLyUnNSi6JDE4mwFDwgHJldUmpeXWlQMkQuCcCByqXkpXADSgDbo"})])}const k=s(l,[["render",p],["__file","worker-node.html.vue"]]);export{k as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/worker-node.html-e487615c.js: -------------------------------------------------------------------------------- 1 | import{_ as s,E as n,Z as d,$ as c,a0 as o,a3 as e,a1 as r,a2 as i}from"./framework-64cb0dab.js";const l={},h=o("h1",{id:"worker-node",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#worker-node","aria-hidden":"true"},"#"),e(" Worker Node")],-1),u=o("p",null,"You can refer below the submodules of worker nodes.",-1);function m(_,f){const t=n("RouterLink"),a=n("Mermaid");return d(),c("div",null,[h,o("p",null,[e("A worker node is a kind of node whose main responsibility is task execution. It receives crawling tasks from the "),r(t,{to:"/en/principle/node/master-node.html"},{default:i(()=>[e("master node")]),_:1}),e(" and executes processes that crawl data on the target websites. Therefore, you can think of worker nodes as executors. They do not handle API requests, task scheduling, cron and other functionalities on a master node.")]),u,r(a,{id:"mermaid-9",code:"eJw1ycEKgzAMxvG7T5FX2WSwXYa0hR3KDrUNtSixpCr49oqxOQT+3y+yywOYZwPnlbWX/s08IsN3DngBgMvJqpc28Og+/3uLnL2NqmuhnRLSUveyk7f6fKCRt+SxwuAoTMjWuDLCW6Iar0TIRUxJiCGF5gBWMjJ0"})])}const w=s(l,[["render",m],["__file","worker-node.html.vue"]]);export{w as default}; 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/favicon.ico -------------------------------------------------------------------------------- /docs/.vuepress/dist/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/dist/logo.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/robots.txt: -------------------------------------------------------------------------------- 1 | 2 | User-agent:* 3 | Disallow: 4 | 5 | Sitemap: https://docs.crawlab.cn/sitemap.xml 6 | -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/beian-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/beian-logo.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-email-notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-email-notifications.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-git-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-git-logs.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-home.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-login.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-mobile-notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-mobile-notifications.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-node-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-node-list.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-plugin-dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-plugin-dependency.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-plugin-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-plugin-list.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-plugin-spider-assistant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-plugin-spider-assistant.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-project-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-project-list.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-schedule-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-schedule-create.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-schedule-detail-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-schedule-detail-overview.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-spider-detail-files.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-spider-detail-files.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-spider-detail-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-spider-detail-overview.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-spider-list-columns-customization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-spider-list-columns-customization.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-spider-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-spider-list.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-task-detail-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-task-detail-data.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-task-detail-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-task-detail-logs.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/images/screenshots/screenshot-task-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/images/screenshots/screenshot-task-list.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-1.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-10.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-2.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-3.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-4.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-5.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-6.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-7.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-8.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/guide/use-crawlab/img/quick-tutorial-9.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/logo-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/logo-150x150.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/principle/architecture/img/crawlab-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/principle/architecture/img/crawlab-architecture.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/quick-tutorial-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/quick-tutorial-1.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-email-notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-email-notifications.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-git-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-git-logs.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-home.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-login.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-mobile-notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-mobile-notifications.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-node-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-node-list.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-plugin-dependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-plugin-dependency.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-plugin-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-plugin-list.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-plugin-spider-assistant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-plugin-spider-assistant.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-project-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-project-list.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-schedule-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-schedule-create.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-schedule-detail-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-schedule-detail-overview.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-spider-detail-files.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-spider-detail-files.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-spider-detail-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-spider-detail-overview.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-spider-list-columns-customization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-spider-list-columns-customization.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-spider-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-spider-list.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-task-detail-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-task-detail-data.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-task-detail-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-task-detail-logs.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/screenshots/screenshot-task-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/screenshots/screenshot-task-list.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-1.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-10.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-2.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-3.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-4.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-5.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-6.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-7.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-8.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/assets/img/zh/guide/use-crawlab/img/quick-tutorial-9.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/js/umeng.js: -------------------------------------------------------------------------------- 1 | (function (w, d, s, q, i) { 2 | w[q] = w[q] || [] 3 | var f = d.getElementsByTagName(s)[0], j = d.createElement(s) 4 | j.async = true 5 | j.id = 'beacon-aplus' 6 | j.src = 'https://d.alicdn.com/alilog/mlog/aplus/' + i + '.js' 7 | f.parentNode.insertBefore(j, f) 8 | })(window, document, 'script', 'aplus_queue', '203467608'); 9 | 10 | (async function () { 11 | //集成应用的appKey 12 | window.aplus_queue.push({ 13 | action: 'aplus.setMetaInfo', 14 | arguments: ['appKey', '6193a6b7e014255fcb7d60b8'] 15 | }) 16 | 17 | //发送pv 18 | window.aplus_queue.push({ 19 | action: 'aplus.sendPV', 20 | arguments: [{ is_auto: true }, {}] 21 | }) 22 | 23 | })() 24 | -------------------------------------------------------------------------------- /docs/.vuepress/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/favicon.ico -------------------------------------------------------------------------------- /docs/.vuepress/public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/.vuepress/public/logo.png -------------------------------------------------------------------------------- /docs/.vuepress/public/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /docs/.vuepress/styles/index.scss: -------------------------------------------------------------------------------- 1 | :root { 2 | --content-width: 980px; 3 | --font-family-fancy: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, 4 | Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; 5 | } 6 | 7 | footer.footer-wrapper { 8 | display: flex; 9 | align-items: center; 10 | height: 36px; 11 | 12 | a { 13 | color: var(--text-color); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /docs/.vuepress/styles/palette.scss: -------------------------------------------------------------------------------- 1 | // you can change colors here 2 | $theme-color: #409eff; 3 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | home: true 3 | redirectTo: https://docs.crawlab.cn/zh/ 4 | --- 5 | -------------------------------------------------------------------------------- /docs/en/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | home: true 3 | redirectTo: https://docs.crawlab.cn/en/guide/ 4 | --- 5 | -------------------------------------------------------------------------------- /docs/en/ai/README.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | [Crawlab AI](https://www.crawlab.cn/en/ai) is an AI-powered data extraction platform that allows users to extract data 4 | from websites and other sources using AI technologies. Crawlab AI is built on top of a series of technologies, including 5 | large language models (LLM) and machine learning (ML) algorithms. It also provides a set of APIs for data extraction. 6 | 7 | # SDK 8 | 9 | Crawlab AI provides an SDK for users to integrate Crawlab AI into their own applications. The SDK is now available in 10 | Python. Users can install the SDK using the following command: 11 | 12 | ```bash 13 | pip install crawlab-ai 14 | ``` 15 | 16 | Please refer to the [documentation](./sdk.md) for more information on how to use the SDK. 17 | 18 | # Playground 19 | 20 | Crawlab AI provides a [playground](https://ai.crawlab.io/en) for users to test the data extraction capabilities of 21 | Crawlab AI. The playground allows users to input a URL and see the extracted data in real-time. Users can also use the 22 | playground to test the APIs provided by Crawlab AI. 23 | 24 | ![](https://www.crawlab.cn/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fai-playground.0978666f.png&w=3840&q=75) 25 | -------------------------------------------------------------------------------- /docs/en/ai/api-token.md: -------------------------------------------------------------------------------- 1 | # API Token 2 | 3 | To use [Crawlab AI](https://www.crawlab.cn/en/ai), you need to obtain an API token. The API token is used to 4 | authenticate your requests to the Crawlab AI platform. 5 | 6 | Creating an API token is easy. Just go to the [API Tokens](https://www.crawlab.cn/en/tokens) page, and click on the " 7 | Create Token" button. You will be prompted to enter a name for your token. Once you have entered a name, click on the 8 | "Create API token" button, and your API token will be generated. 9 | 10 | ![](./img/tokens.png) 11 | 12 | Once you have obtained your API token, you can set it as an environment variable in your application: 13 | 14 | ```bash 15 | export CRAWLAB_TOKEN= 16 | ``` 17 | 18 | Or, you can set it with the CLI: 19 | 20 | ```bash 21 | crawlab-ai config -t 22 | ``` 23 | 24 | For more information, please refer to the [SDK documentation](./sdk.md). 25 | -------------------------------------------------------------------------------- /docs/en/ai/img/licenses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/ai/img/licenses.png -------------------------------------------------------------------------------- /docs/en/ai/img/tokens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/ai/img/tokens.png -------------------------------------------------------------------------------- /docs/en/ai/license.md: -------------------------------------------------------------------------------- 1 | # License 2 | 3 | To use Crawlab AI, you need to purchase a license. You can purchase a license at our 4 | [official website](https://www.crawlab.cn/en/ai). 5 | 6 | Once you have purchased a license, you can view it at [My Licenses](https://www.crawlab.cn/en/licenses) page. 7 | 8 | ![](./img/licenses.png) 9 | 10 | Next, you can create an [API Token](./api-token.md). 11 | -------------------------------------------------------------------------------- /docs/en/api/README.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | Crawlab users and developers are allowed integrate their own data into the Crawlab platform. This can be achieved by 4 | providing open APIs for data integration. 5 | 6 | Please refer to below for more information. 7 | 8 | - [API Reference](api-reference.md) -------------------------------------------------------------------------------- /docs/en/api/api-reference.md: -------------------------------------------------------------------------------- 1 | --- 2 | contributors: false 3 | lastUpdate: false 4 | editLink: false 5 | prev: false 6 | next: false 7 | --- 8 | 9 | 10 | 11 | 18 | -------------------------------------------------------------------------------- /docs/en/develop/README.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/en/develop/introduction.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | :construction: Under construction 4 | -------------------------------------------------------------------------------- /docs/en/develop/plugins/README.md: -------------------------------------------------------------------------------- 1 | # Develop Plugins 2 | 3 | :construction: Under construction 4 | -------------------------------------------------------------------------------- /docs/en/guide/basic-tutorial/img/quick-tutorial-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/basic-tutorial/img/quick-tutorial-1.png -------------------------------------------------------------------------------- /docs/en/guide/basic-tutorial/img/quick-tutorial-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/basic-tutorial/img/quick-tutorial-10.png -------------------------------------------------------------------------------- /docs/en/guide/basic-tutorial/img/quick-tutorial-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/basic-tutorial/img/quick-tutorial-2.png -------------------------------------------------------------------------------- /docs/en/guide/basic-tutorial/img/quick-tutorial-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/basic-tutorial/img/quick-tutorial-3.png -------------------------------------------------------------------------------- /docs/en/guide/basic-tutorial/img/quick-tutorial-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/basic-tutorial/img/quick-tutorial-4.png -------------------------------------------------------------------------------- /docs/en/guide/basic-tutorial/img/quick-tutorial-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/basic-tutorial/img/quick-tutorial-5.png -------------------------------------------------------------------------------- /docs/en/guide/basic-tutorial/img/quick-tutorial-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/basic-tutorial/img/quick-tutorial-6.png -------------------------------------------------------------------------------- /docs/en/guide/basic-tutorial/img/quick-tutorial-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/basic-tutorial/img/quick-tutorial-7.png -------------------------------------------------------------------------------- /docs/en/guide/basic-tutorial/img/quick-tutorial-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/basic-tutorial/img/quick-tutorial-8.png -------------------------------------------------------------------------------- /docs/en/guide/basic-tutorial/img/quick-tutorial-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/basic-tutorial/img/quick-tutorial-9.png -------------------------------------------------------------------------------- /docs/en/guide/data-sources/img/data-sources-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/data-sources/img/data-sources-menu.png -------------------------------------------------------------------------------- /docs/en/guide/data-sources/img/mongo-data-source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/data-sources/img/mongo-data-source.png -------------------------------------------------------------------------------- /docs/en/guide/data-sources/img/mongo-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/data-sources/img/mongo-form.png -------------------------------------------------------------------------------- /docs/en/guide/data-sources/img/new-data-source-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/data-sources/img/new-data-source-button.png -------------------------------------------------------------------------------- /docs/en/guide/data-sources/img/results.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/data-sources/img/results.png -------------------------------------------------------------------------------- /docs/en/guide/deps/img/configure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/deps/img/configure.png -------------------------------------------------------------------------------- /docs/en/guide/deps/img/deps-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/deps/img/deps-list.png -------------------------------------------------------------------------------- /docs/en/guide/deps/img/install-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/deps/img/install-form.png -------------------------------------------------------------------------------- /docs/en/guide/deps/img/install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/deps/img/install.png -------------------------------------------------------------------------------- /docs/en/guide/deps/img/installable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/deps/img/installable.png -------------------------------------------------------------------------------- /docs/en/guide/deps/img/installed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/deps/img/installed.png -------------------------------------------------------------------------------- /docs/en/guide/deps/img/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/deps/img/menu.png -------------------------------------------------------------------------------- /docs/en/guide/deps/img/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/deps/img/search.png -------------------------------------------------------------------------------- /docs/en/guide/deps/img/settings-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/deps/img/settings-list.png -------------------------------------------------------------------------------- /docs/en/guide/deps/img/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/deps/img/settings.png -------------------------------------------------------------------------------- /docs/en/guide/deps/img/tasks-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/deps/img/tasks-list.png -------------------------------------------------------------------------------- /docs/en/guide/deps/img/tasks-logs-content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/deps/img/tasks-logs-content.png -------------------------------------------------------------------------------- /docs/en/guide/deps/img/tasks-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/deps/img/tasks-logs.png -------------------------------------------------------------------------------- /docs/en/guide/deps/img/tasks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/deps/img/tasks.png -------------------------------------------------------------------------------- /docs/en/guide/deps/img/uninstall-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/deps/img/uninstall-form.png -------------------------------------------------------------------------------- /docs/en/guide/deps/img/uninstall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/deps/img/uninstall.png -------------------------------------------------------------------------------- /docs/en/guide/environment/README.md: -------------------------------------------------------------------------------- 1 | # Environment Variables 2 | 3 | ::: info NOTE 4 | This feature is only available in the [Crawlab Pro Edition](https://www.crawlab.cn/prices). 5 | ::: 6 | 7 | Crawlab allows users to set environment variables during spider runtime. 8 | 9 | ## Setting Environment Variables 10 | 11 | 1. Navigate to the `Environment Variables` page. 12 | 2. Click the `Create Environment Variable` button. 13 | 3. Fill in the configuration form. 14 | 15 | ## Accessing Environment Variables 16 | 17 | Assuming we have set an environment variable with the key `FOO` and the value `BAR`, we can access it in a spider script using the following sample code. 18 | 19 | ```python 20 | import os 21 | 22 | foo = os.environ.get('FOO') 23 | print(foo) # BAR 24 | ``` -------------------------------------------------------------------------------- /docs/en/guide/installation/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | There are multiple methods of installing Crawlab. You can refer to the summary table below to choose the one that is 4 | most suitable. 5 | 6 | | Install Method | Recommended Environment | Recommended Users | 7 | |-----------------------------|------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 8 | | [Docker](docker.md) | Demo / Production (nodes<=5) |
  1. Small cluster needed
  2. Familiar with Docker
  3. Minimal maintenance required
| 9 | | [Kubernetes](kubernetes.md) | Production (nodes>5) |
  1. Medium or large cluster needed
  2. Scalability is major concern
  3. Familiar with Kubernetes or orchestration
  4. Professional operation resources available
| 10 | -------------------------------------------------------------------------------- /docs/en/guide/monitoring/img/metric-source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/monitoring/img/metric-source.png -------------------------------------------------------------------------------- /docs/en/guide/monitoring/img/metrics-detail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/monitoring/img/metrics-detail.png -------------------------------------------------------------------------------- /docs/en/guide/monitoring/img/metrics-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/monitoring/img/metrics-menu.png -------------------------------------------------------------------------------- /docs/en/guide/monitoring/img/metrics-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/monitoring/img/metrics-overview.png -------------------------------------------------------------------------------- /docs/en/guide/monitoring/img/metrics-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/monitoring/img/metrics-panel.png -------------------------------------------------------------------------------- /docs/en/guide/monitoring/img/time-range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/monitoring/img/time-range.png -------------------------------------------------------------------------------- /docs/en/guide/monitoring/img/time-unit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/monitoring/img/time-unit.png -------------------------------------------------------------------------------- /docs/en/guide/monitoring/img/view-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/monitoring/img/view-button.png -------------------------------------------------------------------------------- /docs/en/guide/notifications/img/email-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/notifications/img/email-config.png -------------------------------------------------------------------------------- /docs/en/guide/notifications/img/email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/notifications/img/email.png -------------------------------------------------------------------------------- /docs/en/guide/notifications/img/mobile-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/notifications/img/mobile-config.png -------------------------------------------------------------------------------- /docs/en/guide/notifications/img/mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/notifications/img/mobile.png -------------------------------------------------------------------------------- /docs/en/guide/notifications/img/notification-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/notifications/img/notification-menu.png -------------------------------------------------------------------------------- /docs/en/guide/notifications/img/template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/notifications/img/template.png -------------------------------------------------------------------------------- /docs/en/guide/permissions/img/delete-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/permissions/img/delete-button.png -------------------------------------------------------------------------------- /docs/en/guide/permissions/img/link-permissions-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/permissions/img/link-permissions-button.png -------------------------------------------------------------------------------- /docs/en/guide/permissions/img/link-permissions-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/permissions/img/link-permissions-form.png -------------------------------------------------------------------------------- /docs/en/guide/permissions/img/link-users-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/permissions/img/link-users-button.png -------------------------------------------------------------------------------- /docs/en/guide/permissions/img/link-users-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/permissions/img/link-users-form.png -------------------------------------------------------------------------------- /docs/en/guide/permissions/img/permissions-create-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/permissions/img/permissions-create-form.png -------------------------------------------------------------------------------- /docs/en/guide/permissions/img/permissions-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/permissions/img/permissions-create.png -------------------------------------------------------------------------------- /docs/en/guide/permissions/img/permissions-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/permissions/img/permissions-menu.png -------------------------------------------------------------------------------- /docs/en/guide/permissions/img/roles-create-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/permissions/img/roles-create-form.png -------------------------------------------------------------------------------- /docs/en/guide/permissions/img/roles-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/permissions/img/roles-create.png -------------------------------------------------------------------------------- /docs/en/guide/permissions/img/roles-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/permissions/img/roles-menu.png -------------------------------------------------------------------------------- /docs/en/guide/permissions/img/view-permissions-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/permissions/img/view-permissions-button.png -------------------------------------------------------------------------------- /docs/en/guide/permissions/img/view-users-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/permissions/img/view-users-button.png -------------------------------------------------------------------------------- /docs/en/guide/plugin/plugin-notification.md: -------------------------------------------------------------------------------- 1 | # plugin-notification 2 | 3 | [plugin-notification](https://github.com/crawlab-team/plugin-notification) is a Crawlab plugin that allows users to send 4 | and receive notifications from Crawlab using email or mobile applications (e.g. WeChat, DingTalk). 5 | 6 | ## Notification Type 7 | 8 | There are 2 types of notifications in plugin-notification. 9 | 10 | - **Mail**: Sending notifications via email. 11 | - **Mobile**: Sending notifications via mobile webhooks. 12 | 13 | ## Triggers 14 | 15 | plugin-notification allows users to set triggers in order to configure when to send notifications. 16 | 17 | You can follow the below steps to configure triggers. 18 | 19 | 1. Navigate to `Notifications` page. 20 | 2. Navigate to notification detail page by clicking the name or `View` button on the right. 21 | 3. Click `Triggers` tab. 22 | 4. Select triggers for sending notifications. 23 | 24 | ## Template 25 | 26 | plugin-notification allows users to customize notification content. 27 | 28 | You can follow the below steps to customize content. 29 | 30 | 1. Navigate to `Notifications` page. 31 | 2. Navigate to notification detail page by clicking the name or `View` button on the right. 32 | 3. Click `Template` tab. 33 | 4. Edit template. 34 | -------------------------------------------------------------------------------- /docs/en/guide/plugin/plugin-spider-assistant.md: -------------------------------------------------------------------------------- 1 | # plugin-spider-assistant 2 | 3 | [plugin-spider-assistant](https://github.com/crawlab-team/plugin-spider-assistant) is a Crawlab plugin that provides 4 | assistance in spider management. It allows users to view and manage items in spider frameworks. 5 | 6 | ## Spider Frameworks 7 | 8 | | Name | Language | View | Manage | 9 | |------------------------------------------------------------|----------|--------------------|--------| 10 | | [Scrapy](https://scrapy.org/) | Python | :white_check_mark: | :x: | 11 | | [Colly](http://go-colly.org/) | Go | :x: | :x: | 12 | | [WebMagic](http://webmagic.io/) | Java | :x: | :x: | 13 | | [DotnetSpider](https://github.com/dotnetcore/DotnetSpider) | C# | :x: | :x: | 14 | 15 | ## How to use 16 | 17 | 1. Navigate to spider detail page. 18 | 2. Click `Assistant` tab. 19 | 3. You are now able to view info of detected spider framework. 20 | -------------------------------------------------------------------------------- /docs/en/guide/project/README.md: -------------------------------------------------------------------------------- 1 | # Project 2 | 3 | A project is a group of [spiders](../spider/README.md) that are normally closely related and mostly crawl sites or data 4 | in the same category or industry. Therefore, you can regard projects as a method of grouping spiders together so that 5 | they could be better managed. 6 | 7 | It is in one-to-many relationship with [spiders](../spider/README.md). 8 | 9 | ## Link Spiders 10 | 11 | You can link a spider to a project by either, 12 | 13 | 1. selecting `Project` in the spider detail page, or 14 | 2. selecting `Project` in the create new spider dialog. 15 | 16 | ## View Spiders 17 | 18 | Navigate to `Spiders` tab in the project detail page. 19 | -------------------------------------------------------------------------------- /docs/en/guide/spider/file-editor.md: -------------------------------------------------------------------------------- 1 | # File Editor 2 | 3 | Crawlab allows users to edit files in the browser. This is useful for editing files such as `settings.py` and `items.py` 4 | in the spider. 5 | 6 | ## Open File 7 | 8 | 1. Navigate to `Files` tab in spider detail page.
![files-tab](./img/files-tab.png) 9 | 2. Double-click the file you want to edit.
![files-sidebar](./img/files-sidebar.png) 10 | 3. The file should be opened in the editor.
![file-editor](./img/file-editor.png) 11 | 12 | ## Edit File 13 | 14 | 1. Make changes to the file. 15 | 16 | ## Save File 17 | 18 | 1. Press `Ctrl + S` or click `Save` button in the nav bar to save the file.
![save-btn](./img/save-btn.png) 19 | 20 | ## Move File 21 | 22 | 1. Drag and drop the file to the folder you want to move to. 23 | 24 | ## Rename File 25 | 26 | 1. Right-click the file and select `Rename`.
![rename](./img/rename.png) 27 | 28 | ## Duplicate File 29 | 30 | 1. Right-click the file and select `Duplicate`.
![duplicate](./img/duplicate.png) 31 | 32 | ## Delete File 33 | 34 | 1. Right-click the file and click `Delete` in the context menu.
![delete-file](./img/delete-file.png) -------------------------------------------------------------------------------- /docs/en/guide/spider/git.md: -------------------------------------------------------------------------------- 1 | # Git Integration 2 | 3 | Crawlab allows users to configure a Git repository for version control of their spiders. This is very useful for team collaboration. 4 | 5 | ## Configure Git Repository 6 | 7 | 1. Navigate to the `Git` tab on the spider details page. 8 | 2. Enter the URL of the Git repository, and the system will detect whether it's HTTPS or SSH. 9 | 3. Enter the username and password for the Git repository or SSH key. 10 | 4. Click the `Save` button. 11 | 12 | ## Switch Branch 13 | 14 | 1. Click the `Checkout` button. 15 | 2. Select the branch you want to check out. 16 | 3. Click the `Confirm` button. 17 | 18 | ## Pull Code 19 | 20 | 1. Click the `Pull` button and confirm. 21 | 2. The system will pull the code from the remote repository. 22 | 23 | ## Configure Auto Pull 24 | 25 | 1. Check the `Auto Pull` option. 26 | 2. Select the interval for code pulling. 27 | 3. For spiders with the `Auto Pull` option checked, the system will automatically pull the code every minute. 28 | 29 | ## Commit Changes 30 | 31 | 1. Select the `Changes` tab. 32 | 2. Check the files you want to commit. 33 | 3. Click the `Commit` button and confirm. -------------------------------------------------------------------------------- /docs/en/guide/spider/img/delete-file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/spider/img/delete-file.png -------------------------------------------------------------------------------- /docs/en/guide/spider/img/duplicate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/spider/img/duplicate.png -------------------------------------------------------------------------------- /docs/en/guide/spider/img/file-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/spider/img/file-editor.png -------------------------------------------------------------------------------- /docs/en/guide/spider/img/files-sidebar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/spider/img/files-sidebar.png -------------------------------------------------------------------------------- /docs/en/guide/spider/img/files-tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/spider/img/files-tab.png -------------------------------------------------------------------------------- /docs/en/guide/spider/img/rename.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/spider/img/rename.png -------------------------------------------------------------------------------- /docs/en/guide/spider/img/save-btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/spider/img/save-btn.png -------------------------------------------------------------------------------- /docs/en/guide/token/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/guide/token/README.md -------------------------------------------------------------------------------- /docs/en/guide/user/README.md: -------------------------------------------------------------------------------- 1 | # User 2 | 3 | Users in Crawlab are equal to user accounts in most admin systems. User accounts can be created, updated and deleted. 4 | 5 | ## Admin User 6 | 7 | By default, an **admin user** will be created when Crawlab is initialized. Below is the default username and password. 8 | 9 | - Username: `admin` 10 | - Password: `admin` 11 | 12 | ## Create User 13 | 14 | 1. Navigate to `Users` page, and click `New User` button on the top left. 15 | 2. Enter relevant info including `Username` and `Password`. 16 | 3. Click `Confirm`. 17 | 18 | ## Change User Password 19 | 20 | 1. Navigate to user detail page. 21 | 2. Click `Change Password` button. 22 | 3. Enter new password and confirm. 23 | -------------------------------------------------------------------------------- /docs/en/migration/v0.6.md: -------------------------------------------------------------------------------- 1 | # Migrate to v0.6.x from Old Versions 2 | 3 | ## From v0.5.x 4 | 5 | Suppose you have deployed Crawlab v0.5.x and have been running a bunch of spiders on production environment. You can 6 | follow the steps for migration as below. 7 | 8 | 1. Install latest [crawlab-sdk](https://pypi.org/project/crawlab-sdk/#history) 9 | 2. Execute the CLI command below to migrate your spider data to v0.6.x 10 | ```bash 11 | crawlab migrate \ 12 | --mongo_host= \ 13 | --mongo_port= \ 14 | --mongo_db= \ 15 | --mongo_username= \ 16 | --mongo_password= \ 17 | --mongo_auth_source= 18 | ``` -------------------------------------------------------------------------------- /docs/en/principle/README.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | As developers, you might be interested in how Crawlab works. This section will introduce the fundamentals and basic 4 | technologies behind it. 5 | 6 | This section is consisted of the topics. 7 | 8 | - [Architecture](architecture) 9 | - [Node](node) 10 | - [Master Node](node/master-node.md) 11 | - [Worker Node](node/worker-node.md) 12 | - [Node Communication](node/node-communication.md) 13 | - [Database](database) 14 | - [MongoDB](database/mongodb.md) 15 | - [File System](filesystem) 16 | - [SeaweedFS](filesystem/seaweedfs.md) 17 | -------------------------------------------------------------------------------- /docs/en/principle/architecture/README.md: -------------------------------------------------------------------------------- 1 | # Architecture 2 | 3 | The architecture diagram of Crawlab is as below. 4 | 5 | ![Architecture](./img/crawlab-architecture.png) 6 | 7 | As a distributed system, Crawlab is consisted of several modules (or layers), including 8 | [Master Node](../node/master-node), [Worker Nodes](../node/worker-node), [Database](../database) 9 | , [File System](../filesystem) and Frontend. Each module (apart from Master Node for now) is scalable so 10 | that the whole distributed system can be flexibly scaled in order to support high-performance requirements. 11 | 12 | For example, crawling tasks are assigned to the Worker Node Cluster which can adjust itself with suitable number of 13 | nodes if resources needed change. 14 | -------------------------------------------------------------------------------- /docs/en/principle/architecture/img/crawlab-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/principle/architecture/img/crawlab-architecture.png -------------------------------------------------------------------------------- /docs/en/principle/core-modules/README.md: -------------------------------------------------------------------------------- 1 | # Core Modules 2 | 3 | :construction: Under construction... 4 | -------------------------------------------------------------------------------- /docs/en/principle/core-modules/schedule/README.md: -------------------------------------------------------------------------------- 1 | # Schedule 2 | 3 | :construction: Under construction... 4 | -------------------------------------------------------------------------------- /docs/en/principle/core-modules/spider/README.md: -------------------------------------------------------------------------------- 1 | # Spider 2 | 3 | :construction: Under construction... 4 | -------------------------------------------------------------------------------- /docs/en/principle/core-modules/task/README.md: -------------------------------------------------------------------------------- 1 | # Task 2 | 3 | :construction: Under construction... 4 | -------------------------------------------------------------------------------- /docs/en/principle/database/README.md: -------------------------------------------------------------------------------- 1 | # Database 2 | 3 | Crawlab uses [MongoDB](mongodb.md), an open-source high-performance NoSQL database, as its operational 4 | database. 5 | -------------------------------------------------------------------------------- /docs/en/principle/database/mongodb.md: -------------------------------------------------------------------------------- 1 | # MongoDB 2 | 3 | [MongoDB](https://mongodb.com) is one of the most used NoSQL database which is schemaless and allows for rapid 4 | development because developers don't have to worry about database schema migration when data fields are changed. 5 | 6 | The biggest reason of using MongoDB in Crawlab is its flexibility. As Crawlab is under fast development, most of the 7 | time the models and data fields need to be updated. Therefore, MongoDB is the best solution. 8 | 9 | Crawled results data are also stored in MongoDB in the Community Edition. The database of results storage is the same as 10 | the operational data. If you would like to store results data in other types of databases (e.g. MySQL, PostgreSQL, 11 | ElasticSearch, etc.), or other databases or instances of MongoDB, you can check out the Professional Edition, which has 12 | more powerful features for production use. 13 | -------------------------------------------------------------------------------- /docs/en/principle/filesystem/README.md: -------------------------------------------------------------------------------- 1 | # File System 2 | 3 | Crawlab uses [SeaweedFS](seaweedfs.md) as its distributed file system. 4 | 5 | Below is how it works with files synchronization between the master node and worker nodes. 6 | 7 | ![](./img/file-management.png) -------------------------------------------------------------------------------- /docs/en/principle/filesystem/img/file-management.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/principle/filesystem/img/file-management.png -------------------------------------------------------------------------------- /docs/en/principle/filesystem/seaweedfs.md: -------------------------------------------------------------------------------- 1 | # SeaweedFS 2 | 3 | [SeaweedFS](https://github.com/chrislusf/seaweedfs) is an open-source distributed file system which is good at hosting 4 | small files. As Crawlab is a distributed crawler management platform, SeaweedFS serves as the medium for synchronizing 5 | files such as scripts and program files between nodes and instances. 6 | 7 | For more details, please refer to the [wiki](https://github.com/chrislusf/seaweedfs/wiki) on GitHub. 8 | -------------------------------------------------------------------------------- /docs/en/principle/frontend/README.md: -------------------------------------------------------------------------------- 1 | # Frontend 2 | 3 | :construction: Under construction... 4 | -------------------------------------------------------------------------------- /docs/en/principle/node/README.md: -------------------------------------------------------------------------------- 1 | # Node 2 | 3 | A node is an instance that executes and manages crawler programs. It is the basic unit of resources in a distributed 4 | system. 5 | 6 | There are two types of nodes: 7 | 8 | - [Master Node](master-node.md) 9 | - [Worker Node](worker-node.md) 10 | 11 | If you wonder how nodes communicate between each other, you can refer to [Node Communication](node-communication.md). 12 | -------------------------------------------------------------------------------- /docs/en/principle/node/img/node-communication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/en/principle/node/img/node-communication.png -------------------------------------------------------------------------------- /docs/en/principle/node/master-node.md: -------------------------------------------------------------------------------- 1 | # Master Node 2 | 3 | A master node is the central part of the distributed system in Crawlab. It manages registration 4 | of [worker nodes](worker-node.md), assigns and schedule crawling tasks to worker nodes, and receives or transfers 5 | messages from or to worker nodes. 6 | 7 | A master node is consisted of many submodules and is much more complicated than worker nodes. You can refer to the 8 | diagram below for the submodules in a master node. 9 | 10 | ```mermaid 11 | graph TB 12 | subgraph Master Node 13 | api[REST API] 14 | grpc[gRPC Server] 15 | sync[Sync Service] 16 | cron[Cron Service] 17 | task[Task Service] 18 | end 19 | ``` 20 | -------------------------------------------------------------------------------- /docs/en/principle/node/node-communication.md: -------------------------------------------------------------------------------- 1 | # Node Communication 2 | 3 | The master node communicates with worker nodes through [gRPC](https://grpc.io/), a high-performance RPC framework. 4 | 5 | The diagram below shows how the node communication works in Crawlab. 6 | 7 | ![](./img/node-communication.png) 8 | -------------------------------------------------------------------------------- /docs/en/principle/node/worker-node.md: -------------------------------------------------------------------------------- 1 | # Worker Node 2 | 3 | A worker node is a kind of node whose main responsibility is task execution. It receives crawling tasks from 4 | the [master node](master-node.md) and executes processes that crawl data on the target websites. Therefore, you can 5 | think of worker nodes 6 | as executors. They do not handle API requests, task scheduling, cron and other functionalities on a master node. 7 | 8 | You can refer below the submodules of worker nodes. 9 | 10 | ```mermaid 11 | graph TB 12 | subgraph Worker Node 13 | api[REST API] 14 | grpc[gRPC Client] 15 | sync[Sync Service] 16 | handler[Task Handler] 17 | runners[Task Runners] 18 | end 19 | ``` 20 | -------------------------------------------------------------------------------- /docs/en/pro/license.md: -------------------------------------------------------------------------------- 1 | # License 2 | 3 | Crawlab Professional Edition is a commercial product. You need a valid license to use it. 4 | 5 | ## How to Purchase 6 | 7 | You can purchase a Crawlab Pro license by visiting the [Crawlab official website](https://www.crawlab.cn/en). -------------------------------------------------------------------------------- /docs/zh/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | home: true 3 | redirectTo: https://docs.crawlab.cn/zh/guide/ 4 | --- 5 | -------------------------------------------------------------------------------- /docs/zh/ai/README.md: -------------------------------------------------------------------------------- 1 | # 介绍 2 | 3 | [Crawlab AI](https://www.crawlab.cn/zh/ai) 是一个使用AI技术从网站和其他来源提取数据的平台。Crawlab 4 | AI基于一系列技术,包括大型语言模型(LLM)和机器学习(ML)算法。它还提供一套用于数据提取的API。 5 | 6 | # SDK 7 | 8 | Crawlab AI为用户提供了一个SDK,用户可以将Crawlab AI集成到他们自己的应用程序中。SDK现在可以在Python中使用。用户可以使用以下命令安装SDK: 9 | 10 | ```bash 11 | pip install crawlab-ai 12 | ``` 13 | 14 | 请参阅[文档](./sdk.md)以获取更多关于如何使用SDK的信息。 15 | 16 | # 实验场 17 | 18 | Crawlab AI为用户提供了一个[实验场](https://ai.crawlab.io/zh),用户可以在这里测试Crawlab 19 | AI的数据提取能力。实验场允许用户输入URL并实时查看提取的数据。用户还可以使用实验场来测试Crawlab AI提供的API。 20 | 21 | ![](https://www.crawlab.cn/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fai-playground.0978666f.png&w=3840&q=75) 22 | -------------------------------------------------------------------------------- /docs/zh/ai/api-token.md: -------------------------------------------------------------------------------- 1 | # API 令牌 2 | 3 | 要使用[Crawlab AI](https://www.crawlab.cn/zh/ai),您需要获取一个API令牌。API令牌用于验证您对Crawlab AI平台的请求。 4 | 5 | 创建API令牌很简单。只需转到[API 令牌](https://www.crawlab.cn/en/tokens)页面,然后点击"创建API令牌" 6 | 按钮。系统将提示您为令牌输入一个名称。输入名称后,点击"创建API令牌"按钮,您的API令牌就会生成。 7 | 8 | ![](./img/tokens.png) 9 | 10 | 一旦您获取了API令牌,您可以在应用程序中将其设置为环境变量: 11 | 12 | ```bash 13 | export CRAWLAB_TOKEN= 14 | ``` 15 | 16 | 或者,您可以使用CLI设置它: 17 | 18 | ```bash 19 | crawlab-ai config -t 20 | ``` 21 | 22 | 有关更多信息,请参阅[SDK文档](./sdk.md)。 -------------------------------------------------------------------------------- /docs/zh/ai/img/licenses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/ai/img/licenses.png -------------------------------------------------------------------------------- /docs/zh/ai/img/tokens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/ai/img/tokens.png -------------------------------------------------------------------------------- /docs/zh/ai/license.md: -------------------------------------------------------------------------------- 1 | # 许可证 2 | 3 | 要使用Crawlab AI,您需要购买许可证。您可以在我们的[官方网站](https://www.crawlab.cn/zh/ai)购买许可证。 4 | 5 | 一旦您购买了许可证,您可以在[我的许可证](https://www.crawlab.cn/zh/licenses)页面查看它。 6 | 7 | ![](./img/licenses.png) 8 | 9 | 接下来,您可以创建一个[API令牌](./api-token.md)。 -------------------------------------------------------------------------------- /docs/zh/api/README.md: -------------------------------------------------------------------------------- 1 | # 介绍 2 | 3 | Crawlab 用户和开发者可以通过提供开放的 API 来集成自己的数据到 Crawlab 平台。 4 | 5 | 请参考以下内容。 6 | 7 | - [API 参考文档](api-reference.md) -------------------------------------------------------------------------------- /docs/zh/api/api-reference.md: -------------------------------------------------------------------------------- 1 | --- 2 | contributors: false 3 | lastUpdate: false 4 | editLink: false 5 | prev: false 6 | next: false 7 | --- 8 | 9 | 10 | 11 | 18 | -------------------------------------------------------------------------------- /docs/zh/develop/README.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/zh/develop/introduction.md: -------------------------------------------------------------------------------- 1 | # 介绍 2 | 3 | :construction: Under construction 4 | -------------------------------------------------------------------------------- /docs/zh/develop/plugins/README.md: -------------------------------------------------------------------------------- 1 | # 开发插件 2 | 3 | :construction: Under construction 4 | -------------------------------------------------------------------------------- /docs/zh/guide/basic-tutorial/img/quick-tutorial-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/basic-tutorial/img/quick-tutorial-1.png -------------------------------------------------------------------------------- /docs/zh/guide/basic-tutorial/img/quick-tutorial-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/basic-tutorial/img/quick-tutorial-10.png -------------------------------------------------------------------------------- /docs/zh/guide/basic-tutorial/img/quick-tutorial-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/basic-tutorial/img/quick-tutorial-2.png -------------------------------------------------------------------------------- /docs/zh/guide/basic-tutorial/img/quick-tutorial-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/basic-tutorial/img/quick-tutorial-3.png -------------------------------------------------------------------------------- /docs/zh/guide/basic-tutorial/img/quick-tutorial-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/basic-tutorial/img/quick-tutorial-4.png -------------------------------------------------------------------------------- /docs/zh/guide/basic-tutorial/img/quick-tutorial-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/basic-tutorial/img/quick-tutorial-5.png -------------------------------------------------------------------------------- /docs/zh/guide/basic-tutorial/img/quick-tutorial-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/basic-tutorial/img/quick-tutorial-6.png -------------------------------------------------------------------------------- /docs/zh/guide/basic-tutorial/img/quick-tutorial-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/basic-tutorial/img/quick-tutorial-7.png -------------------------------------------------------------------------------- /docs/zh/guide/basic-tutorial/img/quick-tutorial-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/basic-tutorial/img/quick-tutorial-8.png -------------------------------------------------------------------------------- /docs/zh/guide/basic-tutorial/img/quick-tutorial-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/basic-tutorial/img/quick-tutorial-9.png -------------------------------------------------------------------------------- /docs/zh/guide/data-sources/img/data-sources-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/data-sources/img/data-sources-menu.png -------------------------------------------------------------------------------- /docs/zh/guide/data-sources/img/mongo-data-source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/data-sources/img/mongo-data-source.png -------------------------------------------------------------------------------- /docs/zh/guide/data-sources/img/mongo-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/data-sources/img/mongo-form.png -------------------------------------------------------------------------------- /docs/zh/guide/data-sources/img/new-data-source-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/data-sources/img/new-data-source-button.png -------------------------------------------------------------------------------- /docs/zh/guide/data-sources/img/results.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/data-sources/img/results.png -------------------------------------------------------------------------------- /docs/zh/guide/deps/img/configure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/deps/img/configure.png -------------------------------------------------------------------------------- /docs/zh/guide/deps/img/deps-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/deps/img/deps-list.png -------------------------------------------------------------------------------- /docs/zh/guide/deps/img/install-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/deps/img/install-form.png -------------------------------------------------------------------------------- /docs/zh/guide/deps/img/install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/deps/img/install.png -------------------------------------------------------------------------------- /docs/zh/guide/deps/img/installable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/deps/img/installable.png -------------------------------------------------------------------------------- /docs/zh/guide/deps/img/installed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/deps/img/installed.png -------------------------------------------------------------------------------- /docs/zh/guide/deps/img/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/deps/img/menu.png -------------------------------------------------------------------------------- /docs/zh/guide/deps/img/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/deps/img/search.png -------------------------------------------------------------------------------- /docs/zh/guide/deps/img/settings-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/deps/img/settings-list.png -------------------------------------------------------------------------------- /docs/zh/guide/deps/img/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/deps/img/settings.png -------------------------------------------------------------------------------- /docs/zh/guide/deps/img/tasks-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/deps/img/tasks-list.png -------------------------------------------------------------------------------- /docs/zh/guide/deps/img/tasks-logs-content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/deps/img/tasks-logs-content.png -------------------------------------------------------------------------------- /docs/zh/guide/deps/img/tasks-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/deps/img/tasks-logs.png -------------------------------------------------------------------------------- /docs/zh/guide/deps/img/tasks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/deps/img/tasks.png -------------------------------------------------------------------------------- /docs/zh/guide/deps/img/uninstall-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/deps/img/uninstall-form.png -------------------------------------------------------------------------------- /docs/zh/guide/deps/img/uninstall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/deps/img/uninstall.png -------------------------------------------------------------------------------- /docs/zh/guide/environment/README.md: -------------------------------------------------------------------------------- 1 | # 环境变量 2 | 3 | ::: info 注意 4 | 该功能仅适用于 [Crawlab 专业版](https://www.crawlab.cn/prices)。 5 | ::: 6 | 7 | Crawlab 允许用户在爬虫运行时设置环境变量。 8 | 9 | ## 设置环境变量 10 | 11 | 1. 导航到 `环境变量` 页面 12 | 2. 点击 `新建环境变量` 按钮 13 | 3. 填写配置表单 14 | 15 | ## 调用环境变量 16 | 17 | 假设我们已经设置设置了一个环境变量,键为 `FOO`,值为 `BAR`,则我们可以在爬虫脚本中调用它,示例代码如下。 18 | 19 | ```python 20 | import os 21 | 22 | foo = os.environ.get('FOO') 23 | print(foo) # BAR 24 | ``` 25 | -------------------------------------------------------------------------------- /docs/zh/guide/installation/README.md: -------------------------------------------------------------------------------- 1 | # 安装 2 | 3 | 安装 Crawlab 的方式有多种,您可以参考下面的汇总表,选择最适合您的方式。 4 | 5 | | 安装方式 | 推荐环境 | 推荐用户 | 6 | |-----------------------------|--------------------|-------------------------------------------------------------------------------------------| 7 | | [Docker](docker.md) | 演示 / 生产 (节点数不大于 5) |
  1. 小型集群需求
  2. 熟悉 Docker
  3. 要求最少量的维护
| 8 | | [Kubernetes](kubernetes.md) | 生产 (节点数大于 5) |
  1. 中大型集群需求
  2. 可扩展性是重要因素
  3. 熟悉 Kubernetes 或编排技术
  4. 拥有专业的运维资源
| 9 | -------------------------------------------------------------------------------- /docs/zh/guide/monitoring/README.md: -------------------------------------------------------------------------------- 1 | # 监控指标 2 | 3 | ::: info 注意 4 | 该功能仅适用于 [Crawlab 专业版](https://www.crawlab.cn/prices)。 5 | ::: 6 | 7 | [Crawlab 专业版](https://www.crawlab.cn/prices) 支持性能监控,这意味着您可以使用 Crawlab 专业版监控节点的性能。 8 | 9 | ## 性能指标概览 10 | 11 | 1. 进入 `指标` 页面
![metrics-menu](./img/metrics-menu.png) 12 | 2. 您可以看到所有节点的性能指标快照
![metrics-overview](./img/metrics-overview.png) 13 | 14 | ## 性能指标详情 15 | 16 | 1. 通过点击 `指标` 页面中的 `查看` 按钮进入 `指标详情` 页面
![view-button](./img/view-button.png) 17 | 2. 您可以看到所选节点的性能指标
![metrics-detail](./img/metrics-detail.png) 18 | 3. 您可以通过选择 `指标来源` 下拉菜单来切换指标来源
![metrics-source](./img/metric-source.png) 19 | 4. 您可以通过选择 `时间范围` 下拉菜单来选择时间范围
![time-range](./img/time-range.png)
20 | 和 `时间单位`
![time-unit](./img/time-unit.png) 21 | 5. 您可以通过勾选左侧面板中的指标来显示/隐藏右侧面板中的指标
![metrics-panel](./img/metrics-panel.png) 22 | -------------------------------------------------------------------------------- /docs/zh/guide/monitoring/img/metric-source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/monitoring/img/metric-source.png -------------------------------------------------------------------------------- /docs/zh/guide/monitoring/img/metrics-detail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/monitoring/img/metrics-detail.png -------------------------------------------------------------------------------- /docs/zh/guide/monitoring/img/metrics-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/monitoring/img/metrics-menu.png -------------------------------------------------------------------------------- /docs/zh/guide/monitoring/img/metrics-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/monitoring/img/metrics-overview.png -------------------------------------------------------------------------------- /docs/zh/guide/monitoring/img/metrics-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/monitoring/img/metrics-panel.png -------------------------------------------------------------------------------- /docs/zh/guide/monitoring/img/time-range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/monitoring/img/time-range.png -------------------------------------------------------------------------------- /docs/zh/guide/monitoring/img/time-unit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/monitoring/img/time-unit.png -------------------------------------------------------------------------------- /docs/zh/guide/monitoring/img/view-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/monitoring/img/view-button.png -------------------------------------------------------------------------------- /docs/zh/guide/notifications/img/email-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/notifications/img/email-config.png -------------------------------------------------------------------------------- /docs/zh/guide/notifications/img/email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/notifications/img/email.png -------------------------------------------------------------------------------- /docs/zh/guide/notifications/img/mobile-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/notifications/img/mobile-config.png -------------------------------------------------------------------------------- /docs/zh/guide/notifications/img/mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/notifications/img/mobile.png -------------------------------------------------------------------------------- /docs/zh/guide/notifications/img/notification-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/notifications/img/notification-menu.png -------------------------------------------------------------------------------- /docs/zh/guide/notifications/img/template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/notifications/img/template.png -------------------------------------------------------------------------------- /docs/zh/guide/permissions/img/delete-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/permissions/img/delete-button.png -------------------------------------------------------------------------------- /docs/zh/guide/permissions/img/link-permissions-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/permissions/img/link-permissions-button.png -------------------------------------------------------------------------------- /docs/zh/guide/permissions/img/link-permissions-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/permissions/img/link-permissions-form.png -------------------------------------------------------------------------------- /docs/zh/guide/permissions/img/link-users-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/permissions/img/link-users-button.png -------------------------------------------------------------------------------- /docs/zh/guide/permissions/img/link-users-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/permissions/img/link-users-form.png -------------------------------------------------------------------------------- /docs/zh/guide/permissions/img/permissions-create-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/permissions/img/permissions-create-form.png -------------------------------------------------------------------------------- /docs/zh/guide/permissions/img/permissions-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/permissions/img/permissions-create.png -------------------------------------------------------------------------------- /docs/zh/guide/permissions/img/permissions-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/permissions/img/permissions-menu.png -------------------------------------------------------------------------------- /docs/zh/guide/permissions/img/roles-create-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/permissions/img/roles-create-form.png -------------------------------------------------------------------------------- /docs/zh/guide/permissions/img/roles-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/permissions/img/roles-create.png -------------------------------------------------------------------------------- /docs/zh/guide/permissions/img/roles-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/permissions/img/roles-menu.png -------------------------------------------------------------------------------- /docs/zh/guide/permissions/img/view-permissions-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/permissions/img/view-permissions-button.png -------------------------------------------------------------------------------- /docs/zh/guide/permissions/img/view-users-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/permissions/img/view-users-button.png -------------------------------------------------------------------------------- /docs/zh/guide/plugin/plugin-dependency.md: -------------------------------------------------------------------------------- 1 | # 依赖管理插件 (plugin-dependency) 2 | 3 | [plugin-dependency](https://github.com/crawlab-team/plugin-dependency) 是 Crawlab 中能够管理依赖的插件。例如,您的 Python 爬虫可能会需要 Crawlab 4 | 中预装插件之外的插件,例如 selenium 或 sqlalchemy。利用 plugin-dependency,您可以在 Crawlab 界面中轻松安装和管理依赖和库。 5 | 6 | ## 可用的依赖框架 7 | 8 | - Python 9 | - Node.js 10 | 11 | ## 搜索安装依赖 12 | 13 | 您可以在 Crawlab 界面中利用 plugin-dependency 搜索并安装依赖,跟在受欢迎的 IDEs 中一样,例如 JetBrains IDEA 和 VS Code。 14 | 15 | 1. 导航值依赖框架页面,例如 `Python` 16 | 2. 点击 `可安装` 按钮 17 | 3. 在上左侧的搜索栏中输入查找关键词 18 | 4. 点击搜索图标按钮 19 | 5. 点击右侧的 `安装` 按钮,安装您要安装的依赖 20 | 21 | ## 卸载依赖 22 | 23 | 我们也可以卸载依赖。 24 | 25 | 1. 导航值依赖框架页面,例如 `Python` 26 | 2. 点击 `已安装` 按钮 27 | 3. 在上左侧的搜索栏中输入查找关键词 28 | 4. 点击搜索图标按钮 29 | 5. 点击右侧的 `卸载` 按钮,安装您要卸载的依赖 30 | 31 | ## 查看任务 32 | 33 | 您可能想查看您的安装或卸载是否成功,这可以通过如下步骤实现。 34 | 35 | 1. 导航值插件框架页面,例如 `Python` 36 | 2. 点击 `任务` 按钮 37 | 3. 您可以通过点击 `日志` 按钮来查看每个任务的日志 38 | 39 | 40 | -------------------------------------------------------------------------------- /docs/zh/guide/plugin/plugin-notification.md: -------------------------------------------------------------------------------- 1 | # 消息通知插件 (plugin-notification) 2 | 3 | [plugin-notification](https://github.com/crawlab-team/plugin-notification) 是一个 Crawlab 插件,它允许用户用电子邮箱或移动应用 (例如,微信、钉钉) 收发 4 | Crawlab 消息通知。 5 | 6 | ## 消息通知类别 7 | 8 | plugin-notification 有 2 种消息通知类别: 9 | 10 | - **邮箱**: 通过电子邮箱发送消息通知 11 | - **移动端**: 通过移动端 webhooks 发送消息通知 12 | 13 | ## 触发 14 | 15 | plugin-notification 允许用户配置触发来控制发送消息通知的时机。 16 | 17 | 您可以通过如下步骤来配置触发: 18 | 19 | 1. 导航至 `消息通知` 页面 20 | 2. 点击名称或左侧 `查看` 按钮导航至消息通知详情页面 21 | 3. 点击 `触发` 标签 22 | 4. 选择发送消息通知的触发 23 | 24 | ## 模版 25 | 26 | plugin-notification 允许用户自定义消息通知内容。 27 | 28 | 您可以通过如下步骤来自定义消息通知内容: 29 | 30 | 1. 导航至 `消息通知` 页面 31 | 2. 点击名称或左侧 `查看` 按钮导航至消息通知详情页面 32 | 3. 点击 `模版` 标签 33 | 4. 编辑模版 -------------------------------------------------------------------------------- /docs/zh/guide/plugin/plugin-spider-assistant.md: -------------------------------------------------------------------------------- 1 | # 爬虫助手插件 (plugin-spider-assistant) 2 | 3 | [plugin-spider-assistant](https://github.com/crawlab-team/plugin-spider-assistant) 是一个 Crawlab 4 | 插件,提供爬虫管理辅助支持。它允许用户查看并管理各种爬虫框架。 5 | 6 | ## 爬虫框架 7 | 8 | | 名称 | 语言 | 查看 | 管理 | 9 | |------------------------------------------------------------|--------|--------------------|-----| 10 | | [Scrapy](https://scrapy.org/) | Python | :white_check_mark: | :x: | 11 | | [Colly](http://go-colly.org/) | Go | :x: | :x: | 12 | | [WebMagic](http://webmagic.io/) | Java | :x: | :x: | 13 | | [DotnetSpider](https://github.com/dotnetcore/DotnetSpider) | C# | :x: | :x: | 14 | 15 | ## 如何使用 16 | 17 | 1. 导航至爬虫详情页 18 | 2. 点击 `助手` 按钮 19 | 3. 您现在应该能看到检测到的爬虫框架信息 20 | -------------------------------------------------------------------------------- /docs/zh/guide/project/README.md: -------------------------------------------------------------------------------- 1 | # 项目 2 | 3 | 项目是通常是一组紧密相关或抓取同类网站数据的 [爬虫](../spider/README.md)。因此,您可以将项目作为给爬虫分组的方式。通过这种方式,爬虫能够被更好的管理。 4 | 5 | 项目跟 [爬虫](../spider/README.md) 是一对多的关系。 6 | 7 | ## 关联爬虫 8 | 9 | 您可以将一个爬虫与一个项目进行关联,通过 10 | 11 | 1. 在爬虫详情页 `项目` 字段中选择项目,或 12 | 2. 在创建新爬虫对话框中的 `项目` 字段中选择项目 13 | 14 | ## 查看爬虫 15 | 16 | 在项目详情页中导航到 `爬虫` 标签。 17 | -------------------------------------------------------------------------------- /docs/zh/guide/spider/file-editor.md: -------------------------------------------------------------------------------- 1 | # 文件编辑 2 | 3 | Crawlab 允许用户在浏览器中编辑文件。这对于编辑爬虫中的 `settings.py` 和 `items.py` 文件非常有用。 4 | 5 | ## 打开文件 6 | 7 | 1. 导航到爬虫详情页面的 `Files` 标签。
![files-tab](./img/files-tab.png) 8 | 2. 双击要编辑的文件。
![files-sidebar](./img/files-sidebar.png) 9 | 3. 文件应该在编辑器中打开。
![file-editor](./img/file-editor.png) 10 | 11 | ## 编辑文件 12 | 13 | 1. 修改文件。 14 | 15 | ## 保存文件 16 | 17 | 1. 按 `Ctrl + S` 或点击导航栏中的 `保存` 按钮保存文件。
![save-btn](./img/save-btn.png) 18 | 19 | ## 移动文件 20 | 21 | 1. 拖放文件到要移动到的文件夹。 22 | 23 | ## 重命名文件 24 | 25 | 1. 右键单击文件并选择 `重命名`。
![rename](./img/rename.png) 26 | 27 | ## 复制文件 28 | 29 | 1. 右键单击文件并选择 `复制`。
![duplicate](./img/duplicate.png) 30 | 31 | ## 删除文件 32 | 33 | 1. 点击右键菜单中的 `删除`。
![delete-file](./img/delete-file.png) 34 | -------------------------------------------------------------------------------- /docs/zh/guide/spider/git.md: -------------------------------------------------------------------------------- 1 | # Git 集成 2 | 3 | Crawlab 允许用户设置 Git 仓库以便于爬虫的版本控制。这对于团队协作非常有用。 4 | 5 | ## 设置 Git 仓库 6 | 7 | 1. 导航到爬虫详情页面的 `Git` 标签。 8 | 2. 输入 Git 仓库的 URL,系统会检测出是否为 HTTPS 或 SSH。 9 | 3. 输入 Git 仓库的用户名和密码,或者 SSH 密钥。 10 | 4. 点击 `保存` 按钮。 11 | 12 | ## 切换分支 13 | 14 | 1. 点击 `签出` 按钮。 15 | 2. 选择要签出的分支。 16 | 3. 点击 `确认` 按钮。 17 | 18 | ## 拉取代码 19 | 20 | 1. 点击 `拉取` 按钮并确认。 21 | 2. 系统会从远端拉取代码。 22 | 23 | ## 设置自动拉取代码 24 | 25 | 1. 勾选 `自动拉取` 选项。 26 | 2. 选择拉取代码的时间间隔。 27 | 3. 对于勾选上 `自动拉取` 选项的爬虫,系统会每过 1 分钟自动拉取代码。 28 | 29 | ## 提交变更 30 | 31 | 1. 选择 `变更` 标签。 32 | 2. 勾选变更的文件。 33 | 3. 点击 `提交` 按钮并确认。 -------------------------------------------------------------------------------- /docs/zh/guide/spider/img/delete-file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/spider/img/delete-file.png -------------------------------------------------------------------------------- /docs/zh/guide/spider/img/duplicate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/spider/img/duplicate.png -------------------------------------------------------------------------------- /docs/zh/guide/spider/img/file-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/spider/img/file-editor.png -------------------------------------------------------------------------------- /docs/zh/guide/spider/img/files-sidebar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/spider/img/files-sidebar.png -------------------------------------------------------------------------------- /docs/zh/guide/spider/img/files-tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/spider/img/files-tab.png -------------------------------------------------------------------------------- /docs/zh/guide/spider/img/rename.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/spider/img/rename.png -------------------------------------------------------------------------------- /docs/zh/guide/spider/img/save-btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/spider/img/save-btn.png -------------------------------------------------------------------------------- /docs/zh/guide/task/README.md: -------------------------------------------------------------------------------- 1 | # 任务 2 | 3 | 任务是 [爬虫](../spider/README.md) 触发的进程,能够抓取网站数据、进行特殊操作、提供其他一些功能。它是运行爬虫进程的基本单位。 4 | 5 | 在 Crawlab 中,您不仅可以一键运行任务,还可以可视化的查看统计数据、实时日志、已抓取数据等任务信息。此外,您还可以设置 `Priority` 来决定任务的执行顺序。 6 | 7 | ## 运行任务 8 | 9 | 您可以 [通过爬虫运行任务](/zh/guide/spider/#运行爬虫),或执行下面的步骤。 10 | 11 | 1. 导航至 `任务列表` 页面 12 | 2. 点击左上方的 `新建任务` 按钮 13 | 3. 选择 `爬虫` 及其他信息 14 | 4. 点击 `确认` 15 | 16 | ## 重新运行任务 17 | 18 | 1. 导航至 `任务列表` 页面 19 | 2. 点击右侧的 `重新运行` 按钮 20 | 21 | ## 监控任务 22 | 23 | Crawlab 提供任务监控功能,让您能够紧密观察抓取结果数据以及爬虫抓取效率。 24 | 25 | ### 查看日志 26 | 27 | 您可以在 Crawlab 中查看实时日志。 28 | 29 | 1. 导航至任务详情页 30 | 2. 点击 `日志` 标签 31 | 32 | ### 查看数据 33 | 34 | 您可以实时查看已抓取数据 35 | 36 | 1. 导航至任务详情页 37 | 2. 点击 `数据` 标签 38 | 39 | ## 取消任务 40 | 41 | 如果任务是 `待运行` 或 `运行中` 状态,您可以取消它,通过 42 | 43 | 1. 在 `任务列表` 页面中点击右侧的 `取消`,或 44 | 2. 在任务详情页点击导航条上的 `取消` 按钮 45 | -------------------------------------------------------------------------------- /docs/zh/guide/token/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/guide/token/README.md -------------------------------------------------------------------------------- /docs/zh/guide/user/README.md: -------------------------------------------------------------------------------- 1 | # 用户 2 | 3 | Crawlab 中的用户等同于大多数管理系统中的用户账户。用户账户能被创建、更新、删除。 4 | 5 | ## 管理用户 6 | 7 | 默认情况下,一个 **管理账户** 将在 Crawlab 初始化时被创建。以下是它默认用户名密码。 8 | 9 | - 用户名: `admin` 10 | - 密码: `admin` 11 | 12 | ## 创建用户 13 | 14 | 1. 导航到 `用户列表` 页面,再点击左上方的 `新建用户` 按钮 15 | 2. 输入 `用户名`、`密码` 等相关信息 16 | 3. 点击 `确认` 17 | 18 | ## 更改用户密码 19 | 20 | 1. 导航到用户详情页 21 | 2. 点击 `更改密码` 按钮 22 | 3. 输入新密码并点击确认 23 | -------------------------------------------------------------------------------- /docs/zh/migration/README.md: -------------------------------------------------------------------------------- 1 | # 版本升级迁移 2 | 3 | Crawlab 从发布至今,有多次大版本更新,由于底层原理变化较大,各个版本不能完全兼容。因此,如果您希望从旧版本迁移到新版本,请参考下列对应的升级迁移指南。 4 | 5 | ## v0.6 6 | 7 | Crawlab v0.6 是一个重大版本更新,在稳定性、可扩展性、功能性方面有大量优化提升。如果需要升级,请参考 [v0.6 升级指南](v0.6.md)。 8 | 9 | ## v0.5 10 | 11 | Crawlab v0.5 是第一个稳定版本,详情请参考 [v0.5 文档](https://docs-v05.crawlab.cn)。 12 | 13 | ## 各版本功能对比 14 | 15 | 功能 | v0.6 | v0.5 16 | ---|:-:|:-: 17 | 节点管理|:white_check_mark:|:white_check_mark: 18 | 爬虫部署|:white_check_mark:|:white_check_mark: 19 | 爬虫代码修改|:white_check_mark:|:white_check_mark: 20 | 爬虫统计数据|:white_check_mark:|:white_check_mark: 21 | 框架集成|:white_check_mark:|:white_check_mark: 22 | 数据存储集成|:white_check_mark:|:white_check_mark: 23 | Git 集成|:white_check_mark:|:white_check_mark: 24 | 任务调度|:white_check_mark:|:white_check_mark: 25 | 任务日志|:white_check_mark:|:white_check_mark: 26 | 任务数据统计|:white_check_mark:|:white_check_mark: 27 | 定时任务|:white_check_mark:|:white_check_mark: 28 | 用户管理|:white_check_mark:|:white_check_mark: 29 | 依赖管理|:white_check_mark:|:white_check_mark: 30 | 消息通知|:white_check_mark:|:white_check_mark: 31 | API|:white_check_mark:|:white_check_mark: 32 | CLI|:white_check_mark:|:white_check_mark: 33 | SDK|:white_check_mark:|:white_check_mark: 34 | 自定义插件|:white_check_mark:|:x: 35 | 可配置爬虫|:x: (暂时)|:white_check_mark: 36 | -------------------------------------------------------------------------------- /docs/zh/migration/v0.6.md: -------------------------------------------------------------------------------- 1 | # 从旧版本升级到 v0.6.x 2 | 3 | ## 从 v0.5.x 版本 4 | 5 | 如果您已经部署了 Crawlab v0.5.x 并且已经在生产环境中运行爬虫,您可以根据以下步骤进行升级。 6 | 7 | 1. 安装最新 [crawlab-sdk](https://pypi.org/project/crawlab-sdk/#history) 8 | 2. 执行如下命令迁移您的爬虫数据至 v0.6.x 9 | ```bash 10 | crawlab migrate \ 11 | --mongo_host= \ 12 | --mongo_port= \ 13 | --mongo_db= \ 14 | --mongo_username= \ 15 | --mongo_password= \ 16 | --mongo_auth_source= 17 | ``` -------------------------------------------------------------------------------- /docs/zh/principle/README.md: -------------------------------------------------------------------------------- 1 | # 介绍 2 | 3 | 作为开发人员,您可能对 Crawlab 是如何工作的感兴趣。本章节将介绍相关的基础知识以及背后的技术。 4 | 5 | 本章节包含以下主题: 6 | 7 | - [架构](architecture) 8 | - [节点](node) 9 | - [主节点](node/master-node.md) 10 | - [工作节点](node/worker-node.md) 11 | - [节点通信](node/node-communication.md) 12 | - [数据库](database) 13 | - [MongoDB](database/mongodb.md) 14 | - [文件系统](filesystem) 15 | - [SeaweedFS](filesystem/seaweedfs.md) 16 | -------------------------------------------------------------------------------- /docs/zh/principle/architecture/README.md: -------------------------------------------------------------------------------- 1 | # 架构 2 | 3 | 以下是 Crawlab 的架构图。 4 | 5 | ![Architecture](./img/crawlab-architecture.png) 6 | 7 | 作为分布式系统,Crawlab 由几个模块组成,其中包括 [主节点](../node/master-node),[工作节点](../node/worker-node), 8 | [数据库](../database),[文件系统](../filesystem) 以及 [前端](../frontend)。每个模块(目前除了节点)都具有可扩展性, 9 | 因此整个分布式系统能够被灵活扩展以支持高性能需求。 10 | 11 | 例如,爬虫抓取任务被分配到工作节点集群,然后工作节点集群可以根据资源需求的变化来调整节点数量。 12 | -------------------------------------------------------------------------------- /docs/zh/principle/architecture/img/crawlab-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/principle/architecture/img/crawlab-architecture.png -------------------------------------------------------------------------------- /docs/zh/principle/core-modules/README.md: -------------------------------------------------------------------------------- 1 | # 核心模块 2 | 3 | :construction: Under construction... 4 | -------------------------------------------------------------------------------- /docs/zh/principle/core-modules/schedule/README.md: -------------------------------------------------------------------------------- 1 | # Schedule 2 | 3 | :construction: Under construction... 4 | -------------------------------------------------------------------------------- /docs/zh/principle/core-modules/spider/README.md: -------------------------------------------------------------------------------- 1 | # Spider 2 | 3 | :construction: Under construction... 4 | -------------------------------------------------------------------------------- /docs/zh/principle/core-modules/task/README.md: -------------------------------------------------------------------------------- 1 | # Task 2 | 3 | :construction: Under construction... 4 | -------------------------------------------------------------------------------- /docs/zh/principle/database/README.md: -------------------------------------------------------------------------------- 1 | # 数据库 2 | 3 | Crawlab 使用开源的高性能 NoSQL 数据库 [MongoDB](mongodb.md) 作为运行数据库。 4 | -------------------------------------------------------------------------------- /docs/zh/principle/database/mongodb.md: -------------------------------------------------------------------------------- 1 | # MongoDB 2 | 3 | [MongoDB](https://mongodb.com) 是最常用的 NoSQL 数据库之一,其无结构 (schemaless) 特性让开发者不用担心由数据字段发生变更而引发的数据库结构迁移,使得开发者快速开发程序应用。 4 | 5 | Crawlab 选择使用 MongoDB 的最大原因是灵活性。因为 Crawlab 正在快速开发中,很多时间数据模型与字段需要变更。因此,MongoDB 是最优选择。 6 | -------------------------------------------------------------------------------- /docs/zh/principle/filesystem/README.md: -------------------------------------------------------------------------------- 1 | # 文件系统 2 | 3 | Crawlab 使用 [SeaweedFS](seaweedfs.md) 作为分布式文件系统。 4 | 5 | 以下是它实现主节点、工作节点文件同步的工作原理。 6 | 7 | ![](./img/file-management.png) -------------------------------------------------------------------------------- /docs/zh/principle/filesystem/img/file-management.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/principle/filesystem/img/file-management.png -------------------------------------------------------------------------------- /docs/zh/principle/filesystem/seaweedfs.md: -------------------------------------------------------------------------------- 1 | # SeaweedFS 2 | 3 | [SeaweedFS](https://github.com/chrislusf/seaweedfs) 是开源分布式文件系统,适合储存小文件。Crawlab 是一个分布式爬虫管理平台,而 SeaweedFS 可以作为节点的间脚本或程序文件同步介质。 4 | 5 | 更多信息,请查看 GitHub 上的 [wiki](https://github.com/chrislusf/seaweedfs/wiki)。 6 | -------------------------------------------------------------------------------- /docs/zh/principle/frontend/README.md: -------------------------------------------------------------------------------- 1 | # Frontend 2 | 3 | :construction: Under construction... 4 | -------------------------------------------------------------------------------- /docs/zh/principle/node/README.md: -------------------------------------------------------------------------------- 1 | # 节点 2 | 3 | 节点是可以管理和执行爬虫程序的实体,是分布式系统资源的基础单位。 4 | 5 | 有两种节点类型: 6 | 7 | - [主节点](master-node.md) 8 | - [工作节点](worker-node.md) 9 | 10 | 如果您希望了解节点间如何通信,请参考[节点通信](node-communication.md)。 11 | -------------------------------------------------------------------------------- /docs/zh/principle/node/img/node-communication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crawlab-team/crawlab-docs/5dc4b77a71a61939d28b57343f9e3978456aef9f/docs/zh/principle/node/img/node-communication.png -------------------------------------------------------------------------------- /docs/zh/principle/node/master-node.md: -------------------------------------------------------------------------------- 1 | # 主节点 2 | 3 | 主节点是 Crawlab 分布式系统中的中心部分,主要负责管理[工作节点](worker-node.md)、派发爬虫任务、以及接受发送信息给工作节点。 4 | 5 | 主节点由很多自模块组成,相比于工作节点更为复杂。您可以参考下图查看主节点的自模块。 6 | 7 | ```mermaid 8 | graph TB 9 | subgraph 主节点 10 | api[REST API] 11 | grpc[gRPC Server] 12 | sync[Sync Service] 13 | cron[Cron Service] 14 | task[Task Service] 15 | end 16 | ``` 17 | -------------------------------------------------------------------------------- /docs/zh/principle/node/node-communication.md: -------------------------------------------------------------------------------- 1 | # 节点通信 2 | 3 | 主节点通过高性能 RPC 框架 [gRPC](https://grpc.io) 与工作节点进行通信。 4 | 5 | 下图展示了 Crawlab 中节点通信的原理。 6 | 7 | ![](./img/node-communication.png) 8 | -------------------------------------------------------------------------------- /docs/zh/principle/node/worker-node.md: -------------------------------------------------------------------------------- 1 | # 工作节点 2 | 3 | 工作节点的主要负责任务执行,它从[主节点](master-node.md)接收爬虫任务并执行目标网站抓取爬虫程序。因此,您可以将工作节点看作执行器。它们并不会处理 4 | API 请求、任务派发、以及其他主节点上的功能。 5 | 6 | 您可以查看下图工作节点自模块。 7 | 8 | ```mermaid 9 | graph TB 10 | subgraph 工作节点 11 | api[REST API] 12 | grpc[gRPC Client] 13 | sync[Sync Service] 14 | handler[Task Handler] 15 | runners[Task Runners] 16 | end 17 | ``` 18 | -------------------------------------------------------------------------------- /docs/zh/pro/README.md: -------------------------------------------------------------------------------- 1 | # 介绍 2 | 3 | Crawlab 专业版是 Crawlab 的企业级产品,基于 Crawlab 的核心功能,增加了更多的功能,适用于生产环境,具有更好的可扩展性和稳定性。 4 | 5 | ## 演示 6 | 7 | 您可以访问 [Demo](https://demo.crawlab.cn) 查看 Crawlab 专业版的功能。 8 | 9 | ## 功能对比 10 | 11 | | 功能 | 专业版 | 社区版 | 12 | |--------------------------------|--------------------|--------------------| 13 | | 爬虫管理 | :white_check_mark: | :white_check_mark: | 14 | | 定时任务 | :white_check_mark: | :white_check_mark: | 15 | | 任务管理 | :white_check_mark: | :white_check_mark: | 16 | | 数据源集成 | :white_check_mark: | :white_check_mark: | 17 | | [消息通知](../guide/notifications) | :white_check_mark: | :x: | 18 | | [性能监控](../guide/monitoring) | :white_check_mark: | :x: | 19 | | [权限管理](../guide/permissions) | :white_check_mark: | :x: | 20 | | [环境变量](../guide/environment) | :white_check_mark: | :x: | 21 | | 画布(低代码开发) | :white_check_mark: | :x: | 22 | 23 | ## 如何安装 24 | 25 | Crawlab 专业版的安装与社区版类似,非常简单。 26 | 27 | 请参考 [安装 Crawlab 专业版](./installation) 了解更多。 28 | 29 | ## 许可证 30 | 31 | 您需要一个[许可证](./license)才能使用 Crawlab 专业版。 32 | -------------------------------------------------------------------------------- /docs/zh/pro/license.md: -------------------------------------------------------------------------------- 1 | # 许可证 2 | 3 | Crawlab 专业版是一个商业产品。您需要一个有效的许可证才能使用它。 4 | 5 | ## 如何购买 6 | 7 | 您可以访问 [Crawlab 官方网站](https://www.crawlab.cn/zh) 购买 Crawlab 专业版许可证。 -------------------------------------------------------------------------------- /scripts/moveImages.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | const path = require('path') 3 | const walkSync = require('walk-sync') 4 | 5 | // target directory 6 | const sourceDir = './docs' 7 | 8 | // ignore 9 | const ignore = [ 10 | '.vuepress', 11 | ] 12 | 13 | // globs 14 | const globs = [ 15 | '**/img/*.png', 16 | '**/img/*.jpg', 17 | '**/img/*.jpeg', 18 | '**/img/*.svg', 19 | ] 20 | 21 | function copyFile(sourceFilePath, targetFilePath) { 22 | const targetDir = path.dirname(targetFilePath) 23 | if (!fs.existsSync(targetDir)) { 24 | fs.mkdirSync(targetDir, { recursive: true }) 25 | } 26 | fs.copyFileSync(sourceFilePath, targetFilePath) 27 | } 28 | 29 | function main() { 30 | // paths 31 | const paths = walkSync(sourceDir, { 32 | globs, 33 | ignore, 34 | includeBasePath: false, 35 | directories: false, 36 | }) 37 | 38 | for (const filePath of paths) { 39 | const sourceFilePath = path.join(sourceDir, filePath) 40 | const targetFilePath = path.join('./docs/.vuepress/public/assets/img', filePath) 41 | copyFile(sourceFilePath, targetFilePath) 42 | } 43 | } 44 | 45 | main() 46 | --------------------------------------------------------------------------------