From 5e2b1e3f5b9052c0b374133ceba8e667f1f4fe4d Mon Sep 17 00:00:00 2001 From: Honza Javorek Date: Wed, 15 Oct 2025 13:56:43 +0200 Subject: [PATCH 01/25] refactor: put old course to legacy folder --- .../best_practices.md | 0 .../challenge/images/crawlee-create.png | Bin .../challenge/images/offers-page.jpg | Bin .../challenge/images/view-offers-button.jpg | Bin .../challenge/index.md | 0 .../challenge/initializing_and_setting_up.md | 0 .../challenge/modularity.md | 0 .../challenge/scraping_amazon.md | 0 .../crawling/exporting_data.md | 0 .../crawling/filtering_links.md | 0 .../crawling/finding_links.js | 0 .../crawling/finding_links.md | 0 .../crawling/first_crawl.md | 0 .../crawling/headless_browser.md | 0 .../images/filtering-product-detail-link.png | Bin .../crawling/images/filtering-product-urls.png | Bin .../crawling/images/filtering-regex-urls.png | Bin .../crawling/images/headless-dynamic-data.png | Bin .../crawling/images/scraping-title.png | Bin .../crawling/images/warehouse-links.png | Bin .../crawling/images/warehouse-store.png | Bin .../crawling/index.md | 0 .../crawling/pro_scraping.md | 0 .../crawling/recap_extraction_basics.md | 0 .../crawling/relative_urls.md | 0 .../crawling/scraping_the_data.md | 0 .../data_extraction/browser_devtools.md | 0 .../data_extraction/computer_preparation.md | 0 .../data_extraction/devtools_continued.md | 0 .../images/browser-devtools-console-commands.png | Bin .../images/browser-devtools-console.png | Bin .../images/browser-devtools-element-selection.png | Bin .../images/browser-devtools-elements-tab.png | Bin .../images/browser-devtools-hover.png | Bin .../images/browser-devtools-wikipedia.png | Bin .../data_extraction/images/csv-data-in-sheets.png | Bin .../data_extraction/images/devtools-clean-price.png | Bin .../images/devtools-cleaning-noise.png | Bin .../images/devtools-collection-class.png | Bin .../images/devtools-collection-product-hover.png | Bin .../images/devtools-collection-product-name.png | Bin .../images/devtools-collection-query-all.png | Bin .../images/devtools-collection-query-hover.png | Bin .../images/devtools-collection-query.png | Bin .../images/devtools-collection-warehouse.png | Bin .../images/devtools-count-products.png | Bin .../images/devtools-extract-product-price.png | Bin .../images/devtools-extract-product-title.png | Bin .../images/devtools-find-child-elements.png | Bin .../images/devtools-print-all-products.png | Bin .../images/devtools-print-parent-text.png | Bin .../images/devtools-product-titles.png | Bin .../data_extraction/images/devtools-split-price.png | Bin .../data_extraction/images/node-scraper-title.png | Bin .../data_extraction/images/vscode-create-file.png | Bin .../data_extraction/images/vscode-hello-world.png | Bin .../data_extraction/images/vscode-npm-init.png | Bin .../data_extraction/images/vscode-open-folder.png | Bin .../data_extraction/images/vscode-open-terminal.png | Bin .../data_extraction/images/vscode-test-setup.png | Bin .../data_extraction/images/vscode-type-module.png | Bin .../data_extraction/index.md | 0 .../data_extraction/node_continued.md | 0 .../data_extraction/node_js_scraper.md | 0 .../data_extraction/project_setup.md | 0 .../data_extraction/save_to_csv.md | 0 .../data_extraction/using_devtools.md | 0 .../images/beginners-data-collection.png | Bin .../images/beginners-data-extraction.png | Bin .../index.md | 0 .../introduction.md | 0 71 files changed, 0 insertions(+), 0 deletions(-) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/best_practices.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/challenge/images/crawlee-create.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/challenge/images/offers-page.jpg (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/challenge/images/view-offers-button.jpg (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/challenge/index.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/challenge/initializing_and_setting_up.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/challenge/modularity.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/challenge/scraping_amazon.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/exporting_data.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/filtering_links.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/finding_links.js (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/finding_links.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/first_crawl.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/headless_browser.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/images/filtering-product-detail-link.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/images/filtering-product-urls.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/images/filtering-regex-urls.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/images/headless-dynamic-data.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/images/scraping-title.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/images/warehouse-links.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/images/warehouse-store.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/index.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/pro_scraping.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/recap_extraction_basics.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/relative_urls.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/crawling/scraping_the_data.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/browser_devtools.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/computer_preparation.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/devtools_continued.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/browser-devtools-console-commands.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/browser-devtools-console.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/browser-devtools-element-selection.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/browser-devtools-elements-tab.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/browser-devtools-hover.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/browser-devtools-wikipedia.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/csv-data-in-sheets.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-clean-price.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-cleaning-noise.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-collection-class.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-collection-product-hover.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-collection-product-name.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-collection-query-all.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-collection-query-hover.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-collection-query.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-collection-warehouse.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-count-products.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-extract-product-price.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-extract-product-title.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-find-child-elements.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-print-all-products.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-print-parent-text.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-product-titles.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/devtools-split-price.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/node-scraper-title.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/vscode-create-file.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/vscode-hello-world.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/vscode-npm-init.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/vscode-open-folder.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/vscode-open-terminal.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/vscode-test-setup.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/images/vscode-type-module.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/index.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/node_continued.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/node_js_scraper.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/project_setup.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/save_to_csv.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/data_extraction/using_devtools.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/images/beginners-data-collection.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/images/beginners-data-extraction.png (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/index.md (100%) rename sources/academy/webscraping/{scraping_basics_javascript => scraping_basics_legacy}/introduction.md (100%) diff --git a/sources/academy/webscraping/scraping_basics_javascript/best_practices.md b/sources/academy/webscraping/scraping_basics_legacy/best_practices.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/best_practices.md rename to sources/academy/webscraping/scraping_basics_legacy/best_practices.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/challenge/images/crawlee-create.png b/sources/academy/webscraping/scraping_basics_legacy/challenge/images/crawlee-create.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/challenge/images/crawlee-create.png rename to sources/academy/webscraping/scraping_basics_legacy/challenge/images/crawlee-create.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/challenge/images/offers-page.jpg b/sources/academy/webscraping/scraping_basics_legacy/challenge/images/offers-page.jpg similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/challenge/images/offers-page.jpg rename to sources/academy/webscraping/scraping_basics_legacy/challenge/images/offers-page.jpg diff --git a/sources/academy/webscraping/scraping_basics_javascript/challenge/images/view-offers-button.jpg b/sources/academy/webscraping/scraping_basics_legacy/challenge/images/view-offers-button.jpg similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/challenge/images/view-offers-button.jpg rename to sources/academy/webscraping/scraping_basics_legacy/challenge/images/view-offers-button.jpg diff --git a/sources/academy/webscraping/scraping_basics_javascript/challenge/index.md b/sources/academy/webscraping/scraping_basics_legacy/challenge/index.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/challenge/index.md rename to sources/academy/webscraping/scraping_basics_legacy/challenge/index.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/challenge/initializing_and_setting_up.md b/sources/academy/webscraping/scraping_basics_legacy/challenge/initializing_and_setting_up.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/challenge/initializing_and_setting_up.md rename to sources/academy/webscraping/scraping_basics_legacy/challenge/initializing_and_setting_up.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/challenge/modularity.md b/sources/academy/webscraping/scraping_basics_legacy/challenge/modularity.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/challenge/modularity.md rename to sources/academy/webscraping/scraping_basics_legacy/challenge/modularity.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/challenge/scraping_amazon.md b/sources/academy/webscraping/scraping_basics_legacy/challenge/scraping_amazon.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/challenge/scraping_amazon.md rename to sources/academy/webscraping/scraping_basics_legacy/challenge/scraping_amazon.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/exporting_data.md b/sources/academy/webscraping/scraping_basics_legacy/crawling/exporting_data.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/exporting_data.md rename to sources/academy/webscraping/scraping_basics_legacy/crawling/exporting_data.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/filtering_links.md b/sources/academy/webscraping/scraping_basics_legacy/crawling/filtering_links.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/filtering_links.md rename to sources/academy/webscraping/scraping_basics_legacy/crawling/filtering_links.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/finding_links.js b/sources/academy/webscraping/scraping_basics_legacy/crawling/finding_links.js similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/finding_links.js rename to sources/academy/webscraping/scraping_basics_legacy/crawling/finding_links.js diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/finding_links.md b/sources/academy/webscraping/scraping_basics_legacy/crawling/finding_links.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/finding_links.md rename to sources/academy/webscraping/scraping_basics_legacy/crawling/finding_links.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/first_crawl.md b/sources/academy/webscraping/scraping_basics_legacy/crawling/first_crawl.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/first_crawl.md rename to sources/academy/webscraping/scraping_basics_legacy/crawling/first_crawl.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/headless_browser.md b/sources/academy/webscraping/scraping_basics_legacy/crawling/headless_browser.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/headless_browser.md rename to sources/academy/webscraping/scraping_basics_legacy/crawling/headless_browser.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/images/filtering-product-detail-link.png b/sources/academy/webscraping/scraping_basics_legacy/crawling/images/filtering-product-detail-link.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/images/filtering-product-detail-link.png rename to sources/academy/webscraping/scraping_basics_legacy/crawling/images/filtering-product-detail-link.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/images/filtering-product-urls.png b/sources/academy/webscraping/scraping_basics_legacy/crawling/images/filtering-product-urls.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/images/filtering-product-urls.png rename to sources/academy/webscraping/scraping_basics_legacy/crawling/images/filtering-product-urls.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/images/filtering-regex-urls.png b/sources/academy/webscraping/scraping_basics_legacy/crawling/images/filtering-regex-urls.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/images/filtering-regex-urls.png rename to sources/academy/webscraping/scraping_basics_legacy/crawling/images/filtering-regex-urls.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/images/headless-dynamic-data.png b/sources/academy/webscraping/scraping_basics_legacy/crawling/images/headless-dynamic-data.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/images/headless-dynamic-data.png rename to sources/academy/webscraping/scraping_basics_legacy/crawling/images/headless-dynamic-data.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/images/scraping-title.png b/sources/academy/webscraping/scraping_basics_legacy/crawling/images/scraping-title.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/images/scraping-title.png rename to sources/academy/webscraping/scraping_basics_legacy/crawling/images/scraping-title.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/images/warehouse-links.png b/sources/academy/webscraping/scraping_basics_legacy/crawling/images/warehouse-links.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/images/warehouse-links.png rename to sources/academy/webscraping/scraping_basics_legacy/crawling/images/warehouse-links.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/images/warehouse-store.png b/sources/academy/webscraping/scraping_basics_legacy/crawling/images/warehouse-store.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/images/warehouse-store.png rename to sources/academy/webscraping/scraping_basics_legacy/crawling/images/warehouse-store.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/index.md b/sources/academy/webscraping/scraping_basics_legacy/crawling/index.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/index.md rename to sources/academy/webscraping/scraping_basics_legacy/crawling/index.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/pro_scraping.md b/sources/academy/webscraping/scraping_basics_legacy/crawling/pro_scraping.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/pro_scraping.md rename to sources/academy/webscraping/scraping_basics_legacy/crawling/pro_scraping.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/recap_extraction_basics.md b/sources/academy/webscraping/scraping_basics_legacy/crawling/recap_extraction_basics.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/recap_extraction_basics.md rename to sources/academy/webscraping/scraping_basics_legacy/crawling/recap_extraction_basics.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/relative_urls.md b/sources/academy/webscraping/scraping_basics_legacy/crawling/relative_urls.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/relative_urls.md rename to sources/academy/webscraping/scraping_basics_legacy/crawling/relative_urls.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/crawling/scraping_the_data.md b/sources/academy/webscraping/scraping_basics_legacy/crawling/scraping_the_data.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/crawling/scraping_the_data.md rename to sources/academy/webscraping/scraping_basics_legacy/crawling/scraping_the_data.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/browser_devtools.md b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/browser_devtools.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/browser_devtools.md rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/browser_devtools.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/computer_preparation.md b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/computer_preparation.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/computer_preparation.md rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/computer_preparation.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/devtools_continued.md b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/devtools_continued.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/devtools_continued.md rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/devtools_continued.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/browser-devtools-console-commands.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/browser-devtools-console-commands.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/browser-devtools-console-commands.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/browser-devtools-console-commands.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/browser-devtools-console.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/browser-devtools-console.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/browser-devtools-console.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/browser-devtools-console.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/browser-devtools-element-selection.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/browser-devtools-element-selection.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/browser-devtools-element-selection.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/browser-devtools-element-selection.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/browser-devtools-elements-tab.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/browser-devtools-elements-tab.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/browser-devtools-elements-tab.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/browser-devtools-elements-tab.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/browser-devtools-hover.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/browser-devtools-hover.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/browser-devtools-hover.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/browser-devtools-hover.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/browser-devtools-wikipedia.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/browser-devtools-wikipedia.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/browser-devtools-wikipedia.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/browser-devtools-wikipedia.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/csv-data-in-sheets.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/csv-data-in-sheets.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/csv-data-in-sheets.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/csv-data-in-sheets.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-clean-price.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-clean-price.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-clean-price.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-clean-price.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-cleaning-noise.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-cleaning-noise.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-cleaning-noise.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-cleaning-noise.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-collection-class.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-collection-class.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-collection-class.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-collection-class.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-collection-product-hover.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-collection-product-hover.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-collection-product-hover.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-collection-product-hover.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-collection-product-name.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-collection-product-name.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-collection-product-name.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-collection-product-name.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-collection-query-all.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-collection-query-all.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-collection-query-all.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-collection-query-all.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-collection-query-hover.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-collection-query-hover.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-collection-query-hover.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-collection-query-hover.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-collection-query.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-collection-query.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-collection-query.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-collection-query.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-collection-warehouse.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-collection-warehouse.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-collection-warehouse.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-collection-warehouse.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-count-products.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-count-products.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-count-products.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-count-products.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-extract-product-price.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-extract-product-price.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-extract-product-price.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-extract-product-price.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-extract-product-title.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-extract-product-title.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-extract-product-title.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-extract-product-title.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-find-child-elements.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-find-child-elements.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-find-child-elements.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-find-child-elements.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-print-all-products.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-print-all-products.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-print-all-products.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-print-all-products.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-print-parent-text.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-print-parent-text.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-print-parent-text.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-print-parent-text.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-product-titles.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-product-titles.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-product-titles.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-product-titles.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-split-price.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-split-price.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/devtools-split-price.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/devtools-split-price.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/node-scraper-title.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/node-scraper-title.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/node-scraper-title.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/node-scraper-title.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/vscode-create-file.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/vscode-create-file.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/vscode-create-file.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/vscode-create-file.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/vscode-hello-world.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/vscode-hello-world.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/vscode-hello-world.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/vscode-hello-world.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/vscode-npm-init.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/vscode-npm-init.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/vscode-npm-init.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/vscode-npm-init.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/vscode-open-folder.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/vscode-open-folder.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/vscode-open-folder.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/vscode-open-folder.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/vscode-open-terminal.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/vscode-open-terminal.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/vscode-open-terminal.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/vscode-open-terminal.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/vscode-test-setup.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/vscode-test-setup.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/vscode-test-setup.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/vscode-test-setup.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/vscode-type-module.png b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/vscode-type-module.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/images/vscode-type-module.png rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/images/vscode-type-module.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/index.md b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/index.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/index.md rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/index.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/node_continued.md b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/node_continued.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/node_continued.md rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/node_continued.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/node_js_scraper.md b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/node_js_scraper.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/node_js_scraper.md rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/node_js_scraper.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/project_setup.md b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/project_setup.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/project_setup.md rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/project_setup.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/save_to_csv.md b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/save_to_csv.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/save_to_csv.md rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/save_to_csv.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/data_extraction/using_devtools.md b/sources/academy/webscraping/scraping_basics_legacy/data_extraction/using_devtools.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/data_extraction/using_devtools.md rename to sources/academy/webscraping/scraping_basics_legacy/data_extraction/using_devtools.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/images/beginners-data-collection.png b/sources/academy/webscraping/scraping_basics_legacy/images/beginners-data-collection.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/images/beginners-data-collection.png rename to sources/academy/webscraping/scraping_basics_legacy/images/beginners-data-collection.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/images/beginners-data-extraction.png b/sources/academy/webscraping/scraping_basics_legacy/images/beginners-data-extraction.png similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/images/beginners-data-extraction.png rename to sources/academy/webscraping/scraping_basics_legacy/images/beginners-data-extraction.png diff --git a/sources/academy/webscraping/scraping_basics_javascript/index.md b/sources/academy/webscraping/scraping_basics_legacy/index.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/index.md rename to sources/academy/webscraping/scraping_basics_legacy/index.md diff --git a/sources/academy/webscraping/scraping_basics_javascript/introduction.md b/sources/academy/webscraping/scraping_basics_legacy/introduction.md similarity index 100% rename from sources/academy/webscraping/scraping_basics_javascript/introduction.md rename to sources/academy/webscraping/scraping_basics_legacy/introduction.md From 192b1ca48f6d898c7b035d09367e9c23f9c59e66 Mon Sep 17 00:00:00 2001 From: Honza Javorek Date: Wed, 15 Oct 2025 13:58:27 +0200 Subject: [PATCH 02/25] refactor: update links to target the legacy folder --- .../academy/glossary/concepts/robot_process_automation.md | 2 +- sources/academy/glossary/tools/apify_cli.md | 2 +- .../platform/expert_scraping_with_apify/actors_webhooks.md | 2 +- .../academy/platform/expert_scraping_with_apify/index.md | 6 +++--- .../tutorials/node_js/analyzing_pages_and_fixing_errors.md | 2 +- .../academy/tutorials/node_js/dealing_with_dynamic_pages.md | 2 +- .../webscraping/anti_scraping/mitigation/using_proxies.md | 4 ++-- .../executing_scripts/extracting_data.md | 2 +- sources/academy/webscraping/puppeteer_playwright/index.md | 2 +- .../puppeteer_playwright/page/interacting_with_a_page.md | 2 +- 10 files changed, 13 insertions(+), 13 deletions(-) diff --git a/sources/academy/glossary/concepts/robot_process_automation.md b/sources/academy/glossary/concepts/robot_process_automation.md index 27d61dcdee..33977031f0 100644 --- a/sources/academy/glossary/concepts/robot_process_automation.md +++ b/sources/academy/glossary/concepts/robot_process_automation.md @@ -31,7 +31,7 @@ With the advance of [machine learning](https://en.wikipedia.org/wiki/Machine_lea ## Is RPA the same as web scraping? {#is-rpa-the-same-as-web-scraping} -While [web scraping](../../webscraping/scraping_basics_javascript/index.md) is a kind of RPA, it focuses on extracting structured data. RPA focuses on the other tasks in browsers - everything except for extracting information. +While [web scraping](../../webscraping/scraping_basics_legacy/index.md) is a kind of RPA, it focuses on extracting structured data. RPA focuses on the other tasks in browsers - everything except for extracting information. ## Additional resources {#additional-resources} diff --git a/sources/academy/glossary/tools/apify_cli.md b/sources/academy/glossary/tools/apify_cli.md index 82cb187e77..a08adcac2c 100644 --- a/sources/academy/glossary/tools/apify_cli.md +++ b/sources/academy/glossary/tools/apify_cli.md @@ -15,7 +15,7 @@ The [Apify CLI](/cli) helps you create, develop, build and run Apify Actors, and ## Installing {#installing} -To install the Apfiy CLI, you'll first need npm, which comes preinstalled with Node.js. If you haven't yet installed Node, learn how to do that [here](../../webscraping/scraping_basics_javascript/data_extraction/computer_preparation.md). Additionally, make sure you've got an Apify account, as you will need to log in to the CLI to gain access to its full potential. +To install the Apfiy CLI, you'll first need npm, which comes preinstalled with Node.js. If you haven't yet installed Node, learn how to do that [here](../../webscraping/scraping_basics_legacy/data_extraction/computer_preparation.md). Additionally, make sure you've got an Apify account, as you will need to log in to the CLI to gain access to its full potential. Open up a terminal instance and run the following command: diff --git a/sources/academy/platform/expert_scraping_with_apify/actors_webhooks.md b/sources/academy/platform/expert_scraping_with_apify/actors_webhooks.md index 53814c0033..6ee336ee58 100644 --- a/sources/academy/platform/expert_scraping_with_apify/actors_webhooks.md +++ b/sources/academy/platform/expert_scraping_with_apify/actors_webhooks.md @@ -15,7 +15,7 @@ Thus far, you've run Actors on the platform and written an Actor of your own, wh ## Advanced Actor overview {#advanced-actors} -In this course, we'll be working out of the Amazon scraper project from the **Web scraping basics for JavaScript devs** course. If you haven't already built that project, you can do it in three short lessons [here](../../webscraping/scraping_basics_javascript/challenge/index.md). We've made a few small modifications to the project with the Apify SDK, but 99% of the code is still the same. +In this course, we'll be working out of the Amazon scraper project from the **Web scraping basics for JavaScript devs** course. If you haven't already built that project, you can do it in three short lessons [here](../../webscraping/scraping_basics_legacy/challenge/index.md). We've made a few small modifications to the project with the Apify SDK, but 99% of the code is still the same. Take another look at the files within your Amazon scraper project. You'll notice that there is a **Dockerfile**. Every single Actor has a Dockerfile (the Actor's **Image**) which tells Docker how to spin up a container on the Apify platform which can successfully run the Actor's code. "Apify Actors" is a serverless platform that runs multiple Docker containers. For a deeper understanding of Actor Dockerfiles, refer to the [Apify Actor Dockerfile docs](/sdk/js/docs/guides/docker-images#example-dockerfile). diff --git a/sources/academy/platform/expert_scraping_with_apify/index.md b/sources/academy/platform/expert_scraping_with_apify/index.md index 95bc0a92c7..6ea4d5f91c 100644 --- a/sources/academy/platform/expert_scraping_with_apify/index.md +++ b/sources/academy/platform/expert_scraping_with_apify/index.md @@ -18,15 +18,15 @@ This course will teach you the nitty gritty of what it takes to build pro-level Before developing a pro-level Apify scraper, there are some important things you should have at least a bit of knowledge about (knowing the basics of each is enough to continue through this section), as well as some things that you should have installed on your system. -> If you've already gone through the [Web scraping basics for JavaScript devs](../../webscraping/scraping_basics_javascript/index.md) and the first courses of the [Apify platform category](../apify_platform.md), you will be more than well equipped to continue on with the lessons in this course. +> If you've already gone through the [Web scraping basics for JavaScript devs](../../webscraping/scraping_basics_legacy/index.md) and the first courses of the [Apify platform category](../apify_platform.md), you will be more than well equipped to continue on with the lessons in this course. +[Puppeteer](https://pptr.dev/) is a library for running and controlling a [headless browser](../../webscraping/scraping_basics_legacy/crawling/headless_browser.md) in Node.js, and was developed at Google. The team working on it was hired by Microsoft to work on the [Playwright](https://playwright.dev/) project; therefore, many parallels can be seen between both the `puppeteer` and `playwright` packages. Proficiency in at least one of these will be good enough. --> ### Crawlee, Apify SDK, and the Apify CLI {#crawlee-apify-sdk-and-cli} -If you're feeling ambitious, you don't need to have any prior experience with Crawlee to get started with this course; however, at least 5–10 minutes of exposure is recommended. If you haven't yet tried out Crawlee, you can refer to [this lesson](../../webscraping/scraping_basics_javascript/crawling/pro_scraping.md) in the **Web scraping basics for JavaScript devs** course (and ideally follow along). To familiarize yourself with the Apify SDK, you can refer to the [Apify Platform](../apify_platform.md) category. +If you're feeling ambitious, you don't need to have any prior experience with Crawlee to get started with this course; however, at least 5–10 minutes of exposure is recommended. If you haven't yet tried out Crawlee, you can refer to [this lesson](../../webscraping/scraping_basics_legacy/crawling/pro_scraping.md) in the **Web scraping basics for JavaScript devs** course (and ideally follow along). To familiarize yourself with the Apify SDK, you can refer to the [Apify Platform](../apify_platform.md) category. The Apify CLI will play a core role in the running and testing of the Actor you will build, so if you haven't gotten it installed already, please refer to [this short lesson](../../glossary/tools/apify_cli.md). diff --git a/sources/academy/tutorials/node_js/analyzing_pages_and_fixing_errors.md b/sources/academy/tutorials/node_js/analyzing_pages_and_fixing_errors.md index 892a3dd59b..6b66dad5f8 100644 --- a/sources/academy/tutorials/node_js/analyzing_pages_and_fixing_errors.md +++ b/sources/academy/tutorials/node_js/analyzing_pages_and_fixing_errors.md @@ -71,7 +71,7 @@ try { } ``` -Read more information about logging and error handling in our developer [best practices](../../webscraping/scraping_basics_javascript/best_practices.md) section. +Read more information about logging and error handling in our developer [best practices](../../webscraping/scraping_basics_legacy/best_practices.md) section. ### Saving snapshots {#saving-snapshots} diff --git a/sources/academy/tutorials/node_js/dealing_with_dynamic_pages.md b/sources/academy/tutorials/node_js/dealing_with_dynamic_pages.md index 21b8aee9a7..4631a98027 100644 --- a/sources/academy/tutorials/node_js/dealing_with_dynamic_pages.md +++ b/sources/academy/tutorials/node_js/dealing_with_dynamic_pages.md @@ -43,7 +43,7 @@ If you're in a brand new project, don't forget to initialize your project, then npm init -y && npm i crawlee ``` -Now, let's write some data extraction code to extract each product's data. This should look familiar if you went through the [Data Extraction](../../webscraping/scraping_basics_javascript/data_extraction/index.md) lessons: +Now, let's write some data extraction code to extract each product's data. This should look familiar if you went through the [Data Extraction](../../webscraping/scraping_basics_legacy/data_extraction/index.md) lessons: ```js import { CheerioCrawler } from 'crawlee'; diff --git a/sources/academy/webscraping/anti_scraping/mitigation/using_proxies.md b/sources/academy/webscraping/anti_scraping/mitigation/using_proxies.md index 819a50c6fc..287da6336a 100644 --- a/sources/academy/webscraping/anti_scraping/mitigation/using_proxies.md +++ b/sources/academy/webscraping/anti_scraping/mitigation/using_proxies.md @@ -11,13 +11,13 @@ slug: /anti-scraping/mitigation/using-proxies --- -In the [**Web scraping basics for JavaScript devs**](../../scraping_basics_javascript/crawling/pro_scraping.md) course, we learned about the power of Crawlee, and how it can streamline the development process of web crawlers. You've already seen how powerful the `crawlee` package is; however, what you've been exposed to thus far is only the tip of the iceberg. +In the [**Web scraping basics for JavaScript devs**](../../scraping_basics_legacy/crawling/pro_scraping.md) course, we learned about the power of Crawlee, and how it can streamline the development process of web crawlers. You've already seen how powerful the `crawlee` package is; however, what you've been exposed to thus far is only the tip of the iceberg. Because proxies are so widely used in the scraping world, Crawlee has built-in features for implementing them in an effective way. One of the main functionalities that comes baked into Crawlee is proxy rotation, which is when each request is sent through a different proxy from a proxy pool. ## Implementing proxies in a scraper {#implementing-proxies} -Let's borrow some scraper code from the end of the [pro-scraping](../../scraping_basics_javascript/crawling/pro_scraping.md) lesson in our **Web scraping basics for JavaScript devs** course and paste it into a new file called **proxies.js**. This code enqueues all of the product links on [demo-webstore.apify.org](https://demo-webstore.apify.org)'s on-sale page, then makes a request to each product page and scrapes data about each one: +Let's borrow some scraper code from the end of the [pro-scraping](../../scraping_basics_legacy/crawling/pro_scraping.md) lesson in our **Web scraping basics for JavaScript devs** course and paste it into a new file called **proxies.js**. This code enqueues all of the product links on [demo-webstore.apify.org](https://demo-webstore.apify.org)'s on-sale page, then makes a request to each product page and scrapes data about each one: ```js // crawlee.js diff --git a/sources/academy/webscraping/puppeteer_playwright/executing_scripts/extracting_data.md b/sources/academy/webscraping/puppeteer_playwright/executing_scripts/extracting_data.md index 4fb52aa83a..8fca38ec63 100644 --- a/sources/academy/webscraping/puppeteer_playwright/executing_scripts/extracting_data.md +++ b/sources/academy/webscraping/puppeteer_playwright/executing_scripts/extracting_data.md @@ -14,7 +14,7 @@ import TabItem from '@theme/TabItem'; --- -Now that we know how to execute scripts on a page, we're ready to learn a bit about [data extraction](../../scraping_basics_javascript/data_extraction/index.md). In this lesson, we'll be scraping all the on-sale products from our [Fakestore](https://demo-webstore.apify.org/search/on-sale) website. Playwright & Puppeteer offer two main methods for data extraction: +Now that we know how to execute scripts on a page, we're ready to learn a bit about [data extraction](../../scraping_basics_legacy/data_extraction/index.md). In this lesson, we'll be scraping all the on-sale products from our [Fakestore](https://demo-webstore.apify.org/search/on-sale) website. Playwright & Puppeteer offer two main methods for data extraction: 1. Directly in `page.evaluate()` and other evaluate functions such as `page.$$eval()`. 2. In the Node.js context using a parsing library such as [Cheerio](https://www.npmjs.com/package/cheerio) diff --git a/sources/academy/webscraping/puppeteer_playwright/index.md b/sources/academy/webscraping/puppeteer_playwright/index.md index 77f8781993..7e41330cbc 100644 --- a/sources/academy/webscraping/puppeteer_playwright/index.md +++ b/sources/academy/webscraping/puppeteer_playwright/index.md @@ -63,7 +63,7 @@ npm install puppeteer -> For a more in-depth guide on how to set up the basic environment we'll be using in this tutorial, check out the [**Computer preparation**](../scraping_basics_javascript/data_extraction/computer_preparation.md) lesson in the **Web scraping basics for JavaScript devs** course +> For a more in-depth guide on how to set up the basic environment we'll be using in this tutorial, check out the [**Computer preparation**](../scraping_basics_legacy/data_extraction/computer_preparation.md) lesson in the **Web scraping basics for JavaScript devs** course ## Course overview {#course-overview} diff --git a/sources/academy/webscraping/puppeteer_playwright/page/interacting_with_a_page.md b/sources/academy/webscraping/puppeteer_playwright/page/interacting_with_a_page.md index ec1c5d0db7..fe0cdd1468 100644 --- a/sources/academy/webscraping/puppeteer_playwright/page/interacting_with_a_page.md +++ b/sources/academy/webscraping/puppeteer_playwright/page/interacting_with_a_page.md @@ -55,7 +55,7 @@ With `page.click()`, Puppeteer and Playwright actually drag the mouse and click, Notice that in the Playwright example, we are using a different selector than in the Puppeteer example. This is because Playwright supports [many custom CSS selectors](https://playwright.dev/docs/other-locators#css-elements-matching-one-of-the-conditions), such as the **has-text** pseudo class. As a rule of thumb, using text selectors is much more preferable to using regular selectors, as they are much less likely to break. If Google makes the sibling above the **Accept all** button a `
` element instead of a `