บทนำ

ในคู่มือทีละขั้นตอนนี้ คุณจะได้ตั้งค่าการขูดเว็บในคลาวด์อย่างครบวงจรใน Apify โดยใช้พร็อกซีมือถือ สร้างนักแสดงที่ใช้งานได้ด้วย Node.js เปิดใช้งานงานทดสอบเพื่อเก็บข้อมูลผลิตภัณฑ์ และเรียนรู้วิธีการจัดการการจำกัดอย่างปลอดภัยเพื่อหลีกเลี่ยงข้อผิดพลาดและการถูกบล็อก คู่มือนี้เหมาะสำหรับผู้เริ่มต้น แต่ยังครอบคลุมหัวข้อสำหรับผู้ใช้ที่มีความเชี่ยวชาญ ในท้ายที่สุด คุณจะมีนักแสดงที่ใช้ซ้ำได้ แผนการตั้งค่าพร็อกซี การตรวจสอบผลลัพธ์ รายการตรวจสอบ การวิเคราะห์ข้อผิดพลาดทั่วไป และคำแนะนำในการเพิ่มประสิทธิภาพ คุณสามารถขยายโปรเจกต์ได้โดยการเพิ่มตัวกำหนดเวลา การส่งออกไปยัง Google Sheets การรวม API และการติดตาม หากคุณต้องการคำตอบอย่างรวดเร็วสำหรับคำถามปฏิบัติ คุณสามารถ ไปที่ส่วนคำถามที่พบบ่อย (FAQ) ได้ทันที แต่เพื่อผลลัพธ์ที่ครบถ้วน ให้ทำตามทุกขั้นตอน

คู่มือนี้เหมาะกับใคร: สำหรับผู้ที่ต้องการเข้าใจวิธีการเปิดใช้งานนักแสดง Apify ด้วยพร็อกซีมือถือโดยไม่ต้องใช้เวลาหลายสัปดาห์ในการศึกษาเอกสารจะเป็นประโยชน์ต่อผู้ทำการตลาด นักวิเคราะห์ นักวิจัย เจ้าของโครงการออนไลน์ และนักพัฒนาที่เพิ่งเริ่มต้นที่ต้องการการเก็บข้อมูลจากเว็บที่เชื่อถือได้และใช้ซ้ำได้

สิ่งที่ควรรู้ล่วงหน้า: ความเข้าใจพื้นฐานใน JavaScript จะเป็นประโยชน์ แต่ไม่บังคับ เราจะชี้แจงอย่างละเอียดว่าคุณต้องคลิกที่ใด กรอกอะไร และตรวจสอบผลลัพธ์อย่างไร สิ่งสำคัญคือคุณต้องสามารถเข้าสู่ระบบที่ให้บริการเว็บได้ คัดลอกโทเค็นการเข้าถึง และจัดการรหัสผ่านอย่างระมัดระวัง

เวลาในการทำงาน: 2–3 ชั่วโมงสำหรับการผ่านทั้งหมด รวมถึงการลงทะเบียน การตั้งค้านักแสดง การรวมพร็อกซี การเปิดใช้งานทดสอบ และการตรวจสอบผลลัพธ์ หากคุณมีบัญชี Apify และเข้าถึงพร็อกซีมือถืออยู่แล้ว คุณจะใช้เวลา 60–90 นาที

การเตรียมการเบื้องต้น

เครื่องมือ โปรแกรม และการเข้าถึงที่จำเป็น

  • บัญชี Apify ที่เข้าถึงการเปิดใช้งานนักแสดง
  • Node.js เวอร์ชัน LTS (18 หรือสูงกว่า) บนคอมพิวเตอร์ส่วนบุคคล หากคุณต้องการแก้ไขโค้ดในเครื่อง คุณสามารถใช้ตัวแก้ไขใน Apify แต่แบบออฟไลน์จะสะดวกกว่า
  • ข้อมูลรับรองสำหรับพร็อกซีมือถือ ตัวอย่างเช่น ให้ใช้ผู้ให้บริการ mobileproxy.space ซึ่งคุณจะได้รับชื่อผู้ใช้ รหัสผ่าน และที่อยู่พร็อกซีเซิร์ฟเวอร์ คุณสามารถใช้บริการอื่นที่คล้ายกันได้
  • โปรแกรมแก้ไขข้อความ: VS Code หรืออื่นๆ
  • Apify CLI (ไม่บังคับ) สำหรับการพัฒนาในเครื่องและการอัปโหลดนักแสดงไปยังคลาวด์

ความต้องการของระบบ

  • การเข้าถึงอินเทอร์เน็ตที่เสถียร
  • Windows, macOS หรือ Linux สำหรับการทำงานในเครื่องกับนักแสดง คุณสามารถใช้คอมพิวเตอร์สมัยใหม่ใดๆ
  • พื้นที่ว่างบนดิสก์ 200–500 MB สำหรับการพึ่งพา npm ถ้าคุณเลือกการพัฒนาท้องถิ่น

สิ่งที่ต้องดาวน์โหลดและติดตั้ง

  1. ติดตั้ง Node.js จากเว็บไซต์ทางการ เลือก LTS หลังการติดตั้ง ให้ตรวจสอบด้วยคำสั่งในเทอร์มินัล: node -v และ npm -v คุณควรเห็นเวอร์ชันโดยไม่มีข้อผิดพลาด
  2. ติดตั้ง Apify CLI (ไม่บังคับ) ด้วยคำสั่ง: npm i -g apify-cli หลังการติดตั้งให้ตรวจสอบ: apify --version
  3. เตรียมข้อมูลรับรองจากพร็อกซีมือถือ: โฮสต์ พอร์ต ชื่อผู้ใช้ และรหัสผ่าน หากใช้ mobileproxy.space คุณจะได้รับที่อยู่ในรูปแบบ host:port และคู่ user:password

⚠️ หมายเหตุ: อย่าเผยแพร่ชื่อผู้ใช้และรหัสผ่านของพร็อกซีในที่สาธารณะ ใช้ตัวแปรสภาพแวดล้อมหรือความลับของแพลตฟอร์ม

การสำรองข้อมูล

ถ้าคุณแก้ไขโค้ดในเครื่อง ควรรักษาสำรองข้อมูลของโปรเจกต์ (เช่น ผ่าน git) ใน Apify แพลตฟอร์มจะเก็บรุ่นของนักแสดง แต่แนะนำให้คุณมีสำรองโค้ดไว้ในเครื่องด้วย

เคล็ดลับ: หากคุณเริ่มใช้งาน Apify เป็นครั้งแรก ให้เริ่มต้นที่เบราว์เซอร์ผ่านตัวแก้ไขในอินเตอร์เฟสของแพลตฟอร์ม จากนั้นจึงเพิ่มการพัฒนาบนเครื่องในภายหลัง นี่จะช่วยให้เริ่มต้นได้รวดเร็วขึ้น

แนวคิดพื้นฐานและ Apify คืออะไร

คำศัพท์ที่สำคัญในภาษาง่าย

  • Apify - แพลตฟอร์มสำหรับการทำงานอัตโนมัติในเว็บ: การขูดข้อมูล การเก็บข้อมูล การรวมระบบ สามารถเรียกใช้โค้ด (นักแสดง) ในคลาวด์ เก็บผลลัพธ์ (Datasets) และจัดการคิวลิงค์ได้
  • นักแสดง - แอปพลิเคชันที่บรรจุใน container (มักใช้ Node.js หรือ Python) ที่ทำงานตามที่คุณต้องการ: เปิดหน้าเว็บไซต์ เก็บข้อมูล บันทึกผลลัพธ์
  • งาน (Task) - การกำหนดค่าการเรียกใช้นักแสดงที่ถูกบันทึกไว้และมีข้อมูลนำเข้าที่เติมไว้แล้ว สะดวกสำหรับการเรียกใช้งานประจำโดยไม่ต้องเปลี่ยนโค้ด
  • Dataset - ที่เก็บผลลัพธ์จากการขูดข้อมูลในรูปแบบของตาราง สามารถส่งออกเป็น JSON, CSV, XLSX
  • Key-Value Store - ที่เก็บไฟล์และการตั้งค่าแบบสุ่ม (เช่น พารามิเตอร์นำเข้า รายงาน)
  • Request Queue - คิวลิงค์สำหรับ crawler เพื่อจัดเก็บและประมวลผล URL อย่างเป็นระบบ
  • ProxyConfiguration - การกำหนดค่าพร็อกซี สามารถใช้พร็อกซี Apify หรือภายนอก รวมถึงพร็อกซีมือถือ
  • พร็อกซีมือถือ - พร็อกซีที่ใช้เครือข่ายมือถือของผู้ให้บริการ พวกเขามักถูกมองว่าเป็นการเข้าถึงข้อมูลจากผู้ใช้มือถือจริง

หลักการทำงานพื้นฐาน

คุณเขียนนักแสดง มอบพารามิเตอร์นำเข้า และเรียกใช้งานในคลาวด์ นักแสดงจะได้รับรายชื่อของลิงค์ เปิดลิงค์ด้วย crawler ที่เลือก (เช่น CheerioCrawler สำหรับหน้า HTML ที่ง่ายหรือ PlaywrightCrawler สำหรับเว็บไซต์ที่ซับซ้อน) เก็บข้อมูล และบันทึกลงใน Dataset สำหรับคำขอเข้าถึง นักแสดงจะใช้พร็อกซีตาม ProxyConfiguration เมื่อต้องการการเก็บข้อมูลที่มั่นคงโดยมีอัตราการแจ้งเตือนเท็จต่ำ จะใช้พร็อกซีมือถือ พวกเขาสามารถกระจายภาระงานและดูเหมือนผู้ใช้งานมือถือสำหรับเป้าหมาย

สิ่งที่สำคัญต้องเข้าใจก่อนเริ่ม

  • ต้องปฏิบัติตามกฎของเว็บไซต์ที่เป็นเป้าหมายและกฎหมายที่บังคับใช้ ใช้การเก็บข้อมูลอย่างมีจริยธรรมและถูกกฎหมาย
  • แม้ว่าพร็อกซีมือถือจะไม่ได้ให้การคุ้มครองจากข้อจำกัด แต่ก็สำคัญที่จะต้องมีจังหวะของคำขอ เวลาหยุดชะงัก หัวข้อ HTTP ที่ถูกต้อง และคุณภาพของโค้ด crawler
  • ขีดจำกัดของแพลตฟอร์ม Apify และแผนบริการของคุณจะมีผลต่อการทำงานพร้อมกัน หน่วยความจำ และระยะเวลาในการทำงาน นี่จะถูกตั้งค่าและควบคุมได้

เคล็ดลับ: หากเป้าหมายมี API อย่างเป็นทางการ ให้เริ่มจาก API การใช้ API จะมีความเสถียรกว่าการขูดข้อมูล HTML

ขั้นตอนที่ 1: เหตุใดจึงต้องใช้พร็อกซีมือถือในการขูดข้อมูลในคลาวด์

วัตถุประสงค์ของขั้นตอน

เข้าใจว่าในสถานการณ์ใดที่พร็อกซีมือถือจะให้ผลลัพธ์ที่ดีที่สุด และวิธีเลือกการตั้งค่าเพื่อลดการถูกบล็อกและความไม่เสถียรเมื่อทำงานจากคลาวด์

คู่มือทีละขั้นตอน

  1. กำหนดวัตถุประสงค์ในการเก็บข้อมูล: รายการสินค้า ราคาสินค้า รีวิว ตารางเวลา ข่าวสาร จดบันทึกประเภทหน้าที่เฉพาะและ URL ที่ประมาณการ
  2. ประเมินความซับซ้อนของเว็บไซต์: หน้าสามารถเปิดได้โดยไม่ใช้ JavaScript หรือไม่ โหลดอย่างรวดเร็วหรือไม่ มีการดาวน์โหลดแบบไดนามิกหรือไม่ หากเว็บไซต์ง่าย สามารถใช้ CheerioCrawler ได้; หากซับซ้อน ให้ใช้ PlaywrightCrawler
  3. ตัดสินใจว่าต้องการการเซสชั่นมือถือหรือไม่: หากเว็บไซต์มีเป้าหมายชัดเจนสำหรับผู้ใช้มือถือ แสดงเวอร์ชันหน้าที่แตกต่างกันสำหรับผู้ใช้มือถือและเดสก์ท็อป การใช้พร็อกซีมือถือจะช่วยให้ดูเหมือนจริง
  4. เลือกผู้ให้บริการพร็อกซีมือถือ ตัวอย่างเช่น mobileproxy.space ให้แน่ใจว่าคุณมีโฮสต์ เสาเข็ม ชื่อผู้ใช้ และรหัสผ่านที่มั่นคง บันทึกสิ่งเหล่านี้แยกต่างหาก
  5. วางแผนความถี่ของคำขอ เริ่มจาก 1–2 แท็บพร้อมกัน และ 1–3 คำขอในหนึ่งวินาที เมื่อจำเป็นให้เพิ่มขึ้นอย่างไหลลื่น โดยสังเกตข้อผิดพลาดและคำตอบจากเว็บไซต์
  6. ตัดสินใจว่าคุณจะใช้การหมุน IP หรือไม่ สำหรับพร็อกซีมือถือ การหมุน IP สามารถเกิดขึ้นตามคำสั่งหรือโดยการตั้งเวลาจากผู้ให้บริการ สอบถามนโยบายและคำสั่งการหมุนจากผู้ให้บริการของคุณ

สิ่งสำคัญ

พร็อกซีมือถือ เหมาะสำหรับลดโอกาสการแจ้งเตือนเท็จหรือทำให้พฤติกรรมของผู้ใช้มือถือเป็นจริง ไม่ควรใช้ สำหรับการกระทำที่ถูกห้ามโดยเว็บไซต์หรือกฎหมาย จำเป็นต้องกำหนดหัวข้อ User-Agent และเวลาหยุดชะงักอย่างถูกต้อง

⚠️ หมายเหตุ: อย่าพยายามหลีกเลี่ยงข้อจำกัดทางเทคนิคของเว็บไซต์ หากหน้าถูกปิดด้วยการตรวจสอบความถูกต้องหรือเงื่อนไขการใช้งาน ให้ทำตามกฎของแหล่งข้อมูล

ผลลัพธ์ที่คาดหวัง

คุณเข้าใจว่าทำไมจึงใช้พร็อกซีมือถือ คุณเลือกผู้ให้บริการ และพร้อมสำหรับการตั้งค่าในนักแสดงแล้ว คุณมีข้อมูลรับรองพร็อกซีและแผนความถี่ของคำขอที่แน่นอน

ปัญหาที่เป็นไปได้และวิธีแก้ไข

  • ไม่ชัดเจนว่าจำเป็นต้องใช้เวอร์ชันมือถือหรือไม่ วิธีแก้ไข: เปิดเว็บไซต์ด้วย User-Agent ของมือถือในเบราว์เซอร์ของนักพัฒนา จากนั้นเปรียบเทียบรูปแบบ หากมีความแตกต่างที่สำคัญ เซสชั่นมือถือจะเหมาะสม
  • ไม่แน่ใจในความน่าเชื่อถือของผู้ให้บริการ วิธีแก้ไข: ทดสอบการเชื่อมต่อผ่าน curl ด้วยพร็อกซีของคุณ และตรวจสอบความเสถียรเป็นเวลา 10-15 นาที

✅ การตรวจสอบ: คุณได้ระบุข้อมูลพร็อกซีที่ถูกต้อง (โฮสต์, พอร์ต, ชื่อผู้ใช้, รหัสผ่าน) และคุณได้บันทึกความถี่ที่ต้องการแล้ว

ขั้นตอนที่ 2: การลงทะเบียนใน Apify และการเตรียมพื้นที่ทำงาน

วัตถุประสงค์ของขั้นตอน

สร้างหรือยืนยันบัญชี Apify เข้าสู่คอนโซล และถ้าจำเป็นให้ติดตั้ง Apify CLI และเตรียมตัวเพื่อสร้างนักแสดง

คู่มือทีละขั้นตอน

  1. ลงทะเบียนใน Apify ป้อนอีเมล คิดรหัสผ่าน ยืนยันอีเมล หลังจากลงชื่อเข้าใช้ คอนโซลจะเปิดขึ้นพร้อมกับส่วนที่เกี่ยวข้องกับนักแสดง งาน และการเก็บข้อมูล
  2. ไปที่โปรไฟล์และค้นหาโทเค็น API ส่วนตัวของคุณ คัดลอกไปยังที่ปลอดภัย มันจะมีประโยชน์ในการใช้ CLI และการรวมระบบ
  3. หากใช้ CLI ให้ติดตั้ง apify-cli โดยใช้คำสั่ง npm i -g apify-cli จากนั้นให้ดำเนินการ apify login และแทรกโทเค็น หลังจากเข้าสู่ระบบสำเร็จ คุณจะเห็นการยืนยันในเทอร์มินัล
  4. สร้างโฟลเดอร์งานในเครื่องหากคุณใช้การพัฒนาท้องถิ่น ทำการดำเนินการ apify create และเลือกแม่แบบบน Node.js พร้อม Crawlee ระบบจะสร้างโครงสร้างโปรเจกต์ที่มี package.json และ src/main.js
  5. หากทำงานเฉพาะในเบราว์เซอร์ ให้กด New ในหมวดนักแสดงและเลือกแม่แบบ Node.js + Crawlee แพลตฟอร์มจะสร้างนักแสดงว่างและเปิดตัวแก้ไขออนไลน์ขึ้น

สิ่งสำคัญ

ความปลอดภัยของโทเค็น เป็นสิ่งสำคัญ ไม่ควรแทรกโทเค็นในโค้ด เก็บไว้ในตัวจัดการรหัสผ่าน ใน CLI จะถูกเก็บไว้ในเครื่องและไม่เข้าสู่ที่เก็บ หากคุณไม่เพิ่มด้วยตนเอง

เคล็ดลับ: ตั้งชื่อให้กับนักแสดงอย่างมีความหมาย เช่น mobile-crawler-products ซึ่งจะช่วยให้ง่ายต่อการนำทางและการทำงานอัตโนมัติ

ผลลัพธ์ที่คาดหวัง

คุณได้เข้าสู่คอนโซล Apify ตั้งค่า CLI ได้ตามต้องการ สร้างนักแสดงว่าง และเห็นไฟล์ main.js ในตัวแก้ไข (หรือในเครื่องในโฟลเดอร์ src)

ปัญหาที่เป็นไปได้และวิธีแก้ไข

  • CLI ไม่เห็นโทเค็น วิธีแก้ไข: เรียกใช้ apify logout และจากนั้น apify login ใหม่ ตรวจสอบให้แน่ใจว่าคุณป้อนโทเค็นที่ถูกต้องจากโปรไฟล์
  • ข้อผิดพลาดในการติดตั้ง npm dependencies วิธีแก้ไข: อัปเดต Node.js เป็น LTS เคลียร์แคช npm โดยใช้คำสั่ง npm cache clean --force แล้วลองติดตั้งอีกครั้ง

✅ การตรวจสอบ: คุณมีนักแสดงที่สร้างขึ้นด้วยการเข้าถึงการแก้ไขโค้ดแล้ว และโครงสร้างพื้นฐานของโปรเจกต์ได้ถูกจัดเตรียมพร้อมใช้งาน

ขั้นตอนที่ 3: การสร้างนักแสดงและการอัปโหลดแม่แบบ

วัตถุประสงค์ของขั้นตอน

เติมนักแสดงด้วยโค้ดเริ่มต้นบน Crawlee เพื่อให้สามารถยืนยันการทำงานของ crawlers โดยไม่มีพร็อกซีได้ทันที

คู่มือทีละขั้นตอน

  1. เปิดไฟล์ main.js หากไฟล์ไม่มีอยู่ ให้สร้าง src/main.js ให้แน่ใจว่า package.json มีการพึ่งพา crawlee และ apify
  2. แทรกโค้ดพื้นฐานสำหรับ crawler ตัวอย่างเช่นสำหรับ CheerioCrawler: import { CheerioCrawler, Dataset } from "crawlee"; export const main = async () => { const startUrls = ["https://example.com/"]; const crawler = new CheerioCrawler({ requestHandler: async ({ request, $, log }) => { const title = $("title").text(); await Dataset.pushData({ url: request.loadedUrl, title }); log.info(`Saved: ${request.loadedUrl}`); }, maxConcurrency: 2, requestHandlerTimeoutSecs: 60, }); for (const url of startUrls) await crawler.addRequests([url]); await crawler.run(); };
  3. บันทึกไฟล์ หากอยู่ในเบราว์เซอร์ ให้กดปุ่ม Save หากอยู่ในเครื่องให้บันทึกการเปลี่ยนแปลงและรัน npm install เพื่อดึงไลบรารี (ถ้าไม่ได้ดึง)
  4. ลองเรียกใช้งานโดยไม่มีพร็อกซี: เรียกใช้นักแสดงด้วยค่าเริ่มต้น ใน Dataset ควรมีอย่างน้อยหนึ่งรายการที่มีฟิลด์ title

สิ่งสำคัญ

MVP ขั้นต่ำ ของนักแสดงมีความจำเป็นเพื่อทดสอบการขนถ่าย: การทำงาน การบันทึกข้อมูล และการบันทึกผลลัพธ์ ก่อนที่จะเพิ่มพร็อกซีให้แน่ใจว่าโค้ดทำงานได้กับหน้าเว็บไซต์ที่ง่าย

เคล็ดลับ: เริ่มจากลิงค์เริ่มต้นหนึ่งหรือสองลิงค์ จะช่วยเร่งการทดสอบและทำให้ค้นหาข้อผิดพลาดได้ง่ายขึ้น

ผลลัพธ์ที่คาดหวัง

นักแสดงทำงานสำเร็จและบันทึกผลลัพธ์ใน Dataset คุณเห็นบันทึกซึ่งแสดงว่าข้อมูลถูกบันทึกแล้ว และไม่มีข้อผิดพลาดเช่น DNS หรือ timeout ทางเครือข่าย

ปัญหาที่เป็นไปได้และวิธีแก้ไข

  • ข้อผิดพลาดในการนำเข้าชุดข้อมูล วิธีแก้ไข: ตรวจสอบเวอร์ชันใน package.json หากจำเป็นให้รัน npm i crawlee apify
  • ไม่มีข้อมูลใน Dataset วิธีแก้ไข: ตรวจสอบตัวเลือก $("title").text() หรือเปลี่ยนเป็นการเลือกอื่นที่ง่ายกว่า เช่น $("h1").first().text().

✅ การตรวจสอบ: ใน Dataset จะมีรายการอย่างน้อยหนึ่งรายการซึ่งมีฟิลด์ url และ title บันทึกแสดงผลสำเร็จโดยไม่มีข้อยกเว้น

ขั้นตอนที่ 4: การตั้งค่าพร็อกซีในนักแสดง

วัตถุประสงค์ของขั้นตอน

เชื่อมต่อพร็อกซีมือถือกับนักแสดง Apify ให้มีการรอดำเนินการทั้งหมดของ crawler ผ่านพร็อกซีเซิร์ฟเวอร์ที่ระบุ และตรวจสอบความเสถียรของการเชื่อมต่อ

คู่มือทีละขั้นตอน

  1. เตรียมสตริงพร็อกซี รูปแบบสำหรับพร็อกซี HTTP จากภายนอก: http://USERNAME:PASSWORD@HOST:PORT ตัวอย่าง: http://user123:pass456@proxy.mobileproxy.space:12345 สำหรับ mobileproxy.space ให้ใช้ข้อมูลรับรองจากบัญชีของคุณ
  2. เพิ่ม ProxyConfiguration ลงในโค้ด สำหรับ CheerioCrawler: import { CheerioCrawler, Dataset, ProxyConfiguration } from "crawlee"; export const main = async () => { const proxy = new ProxyConfiguration({ proxyUrls: ["http://USERNAME:PASSWORD@HOST:PORT"] }); const crawler = new CheerioCrawler({ proxyConfiguration: proxy, requestHandler: async ({ request, $, log }) => { const title = $("title").text(); await Dataset.pushData({ url: request.loadedUrl, title }); log.info(`Saved: ${request.loadedUrl}`); }, maxConcurrency: 2, requestHandlerTimeoutSecs: 60, }); await crawler.addRequests(["https://httpbin.org/ip"]); await crawler.run(); };
  3. บันทึกการเปลี่ยนแปลงและเรียกใช้นักแสดง หากทุกอย่างถูกต้อง ใน Dataset คุณควรเห็นที่อยู่ IP ของพร็อกซีมือถือของคุณ (สำหรับ httpbin.org/ip จะมี JSON พร้อม origin หรือ proxy IP)
  4. หากใช้ PlaywrightCrawler ให้เพิ่ม ProxyConfiguration ในพารามิเตอร์ของ constructor: import { PlaywrightCrawler, Dataset, ProxyConfiguration } from "crawlee"; const proxy = new ProxyConfiguration({ proxyUrls: ["http://USERNAME:PASSWORD@HOST:PORT"] }); const crawler = new PlaywrightCrawler({ proxyConfiguration: proxy, launchContext: { launchOptions: { headless: true } }, requestHandler: async ({ page, request, log }) => { const title = await page.title(); await Dataset.pushData({ url: request.loadedUrl, title }); log.info(`Saved: ${request.loadedUrl}`); } });
  5. หากจำเป็นให้หยิบสตริงพร็อกซีในตัวแปรสภาพแวดล้อมและอ่านผ่าน process.env เพื่อไม่ให้เก็บรหัสผ่านในโค้ด บนแพลตฟอร์ม Apify ใช้ส่วนของ Secrets และ ENV Vars ในการตั้งค่าของนักแสดง ตัวอย่าง: const proxyUrl = process.env.MOBILE_PROXY_URL;

สิ่งสำคัญ

อย่าผสม การใช้พร็อกซี Apify และการกำหนดค่าพร็อกซีมือถือจากภายนอกในเวลาเดียวกัน โดยการตั้งค่าผ่าน proxyUrls จะทำการแทนที่การใช้พร็อกซี Apify ทั้งหมด

เคล็ดลับ: ทดสอบพร็อกซีโดยเริ่มต้นจากเพจง่ายๆ เช่น https://httpbin.org/ip หรือบริการที่คล้ายกัน เพื่อให้คุณรู้ทันทีว่าการส่งข้อมูลผ่านที่อยู่ที่ต้องการ

⚠️ หมายเหตุ: หากผู้ให้บริการพร็อกซีมือถือรองรับการหมุน IP ผ่าน URL หรือคำสั่งเฉพาะ ให้ใช้เฉพาะตามกฎของเขา อย่าเปลี่ยน IP บ่อยเกินไปโดยไม่จำเป็น โดยอาจทำให้ไฟล์ที่เป็นเป้าหมายเกิดความสงสัย

ผลลัพธ์ที่คาดหวัง

Crawler เชื่อมต่อกับพร็อกซีมือถือสำเร็จแล้ว เมื่อคุณตรวจสอบ IP (ผ่านหน้าควบคุม) คุณจะเห็นที่อยู่พร็อกซี บันทึกมีความเสถียร คำขอไม่ได้เกิด timeout

ปัญหาที่เป็นไปได้และวิธีแก้ไข

  • 401 หรือ 407 ในบันทึก สาเหตุ: ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง วิธีแก้ไข: ตรวจสอบข้อมูลการเข้าถึงจากบัญชีผู้ให้บริการ
  • ECONNRESET หรือ ETIMEDOUT สาเหตุ: ความไม่เสถียรของช่องทางหรือการบล็อคโดเมน วิธีแก้ไข: ลดจำนวนการใช้งานพร้อมกันลง แล้วลองทำอีกครั้งหลังจากช่วงเวลา ตรวจสอบสถานะของพร็อกซีกับผู้ให้บริการ

✅ การตรวจสอบ: Dataset มีผลจากการร้องขอหน้าที่แสดง IP และที่อยู่ของพร็อกซีมือถือ

ขั้นตอนที่ 5: ตัวอย่างงาน: การเก็บข้อมูลจากหน้าผลิตภัณฑ์

วัตถุประสงค์ของขั้นตอน

เก็บข้อมูลจากหน้าผลิตภัณฑ์จริงโดยใช้พร็อกซีมือถือและการตั้งค่าของ crawler ที่มั่นคง และบันทึกผลลัพธ์ใน Dataset

คู่มือทีละขั้นตอน

  1. กำหนด URL เป้าหมายของหน้าผลิตภัณฑ์หรือหมวดหมู่ ที่คุณสามารถเก็บข้อมูลที่เปิดได้อย่างปลอดภัยและถูกต้องตามกฎหมาย บันทึกลิงค์ทดสอบ 3-5 ลิงค์
  2. เลือก crawler หากหน้าเว็บมีลักษณะคงที่ ให้ใช้ CheerioCrawler หากข้อมูลโหลดแบบไดนามิก ให้เลือก PlaywrightCrawler
  3. เพิ่มตัวเลือกหลักในการดึงข้อมูล เช่น ชื่อผลิตภัณฑ์ ราคา สกุลเงิน คะแนน ความพร้อมใช้งาน ใน Cheerio จะเป็นตัวเลือกที่คล้าย jQuery; ใน Playwright - page.locator
  4. ตัวอย่างสำหรับ CheerioCrawler: import { CheerioCrawler, Dataset, ProxyConfiguration, log } from "crawlee"; export const main = async () => { log.setLevel(log.LEVELS.INFO); const proxy = new ProxyConfiguration({ proxyUrls: [process.env.MOBILE_PROXY_URL] }); const startUrls = ["https://example.com/product/1", "https://example.com/product/2"]; const crawler = new CheerioCrawler({ proxyConfiguration: proxy, maxConcurrency: 2, requestHandlerTimeoutSecs: 90, requestHandler: async ({ request, $, log }) => { const title = $("h1.product-title").text().trim(); const priceText = $("span.price").text().trim(); const availability = $("div.stock").text().trim(); const currency = priceText.replace(/[0-9.,\s]/g, ""); const price = parseFloat(priceText.replace(/[^0-9.,]/g, "").replace(",", ".")) || null; await Dataset.pushData({ url: request.loadedUrl, title, price, currency, availability }); log.info(`Saved: ${title || "no title"}`); }, failedRequestHandler: async ({ request, log }) => { log.warning(`Failed ${request.url}`); } }); await crawler.addRequests(startUrls); await crawler.run(); };
  5. ตัวอย่างสำหรับ PlaywrightCrawler: import { PlaywrightCrawler, Dataset, ProxyConfiguration } from "crawlee"; export const main = async () => { const proxy = new ProxyConfiguration({ proxyUrls: [process.env.MOBILE_PROXY_URL] }); const startUrls = ["https://example.com/product/1"]; const crawler = new PlaywrightCrawler({ proxyConfiguration: proxy, requestHandlerTimeoutSecs: 120, launchContext: { launchOptions: { headless: true } }, requestHandler: async ({ page, request, log }) => { await page.waitForLoadState("domcontentloaded"); const title = await page.title(); const price = await page.locator("span.price").first().textContent().catch(() => null); await Dataset.pushData({ url: request.loadedUrl, title, price }); log.info(`Saved: ${request.loadedUrl}`); } }); await crawler.addRequests(startUrls); await crawler.run(); };
  6. บันทึก MOBILE_PROXY_URL ในตัวแปรสภาพแวดล้อมของนักแสดงบนแพลตฟอร์ม Apify (ส่วนตั้งค่า → ตัวแปรสภาพแวดล้อม) ค่าที่จะตั้งคือสตริงพร็อกซีที่มีรูปแบบ http://user:pass@host:port
  7. เรียกใช้นักแสดง ในบันทึกให้สังเกตสถานะของคำขอ เวลาในการตอบสนอง และจำนวนนำเข้าที่บันทึกสำเร็จ

สิ่งสำคัญ

โครงสร้างของข้อมูล ใน Dataset ควรคาดเดาได้: ให้ตั้งค่าฟิลด์เหมือนในหน้าผลิตภัณฑ์ทุกหน้า เพื่อลดความยุ่งยากในการส่งออกไปยังตาราง ควบคุมเวลาหยุดชะงัก: สำหรับหน้าที่มีข้อมูลโหลดแบบไดนามิก ให้เพิ่ม requestHandlerTimeoutSecs และรอกระชับที่จะโหลดตัวเลือกหลัก

เคล็ดลับ: เพื่อลดความไม่สะดวกในการโหลด ตั้งเวลาให้มีการรอระหว่างคำขอโดยใช้การตั้งค่าการควบคุมอัตโนมัติหรือเพิ่มเวลา ณ จุดที่จัดการ

ผลลัพธ์ที่คาดหวัง

Dataset มีข้อมูลแต่ละรายการของผลิตภัณฑ์ โดยมีฟิลด์ที่สำคัญบันทึกอยู่ บันทึกมีความเสถียรไม่มีข้อผิดพลาดของการเข้าถึงพร็อกซี และเวลาตอบสนองโดยเฉลี่ยอยู่ในระดับที่ยอมรับได้ในกรณีของคุณ

ปัญหาที่เป็นไปได้และวิธีแก้ไข

  • ตัวเลือกไม่ถูกต้อง สาเหตุ: การออกแบบ adaptives หรือโครงสร้างเพจที่แตกต่าง วิธีแก้ไข: ตรวจสอบทั้งเวอร์ชันมือถือและเดสก์ท็อป ใช้ตัวเลือกที่สามารถคาดเดาได้ยิ่งขึ้น
  • ข้อมูลว่างในฟิลด์บางฟิลด์ สาเหตุ: ค่าโหลดอย่างไดนามิก วิธีแก้ไข: เพิ่มการรอให้ชัดเจนสำหรับอิลิเมนต์ที่ต้องการหรือลองใช้ Playwright แทน Cheerio

✅ การตรวจสอบ: ใน Dataset มีรายการกับ url, title, price หรือฟิลด์ที่เทียบเท่า เวลาข้อผิดพลาดเฉลี่ยต่ำกว่า 5–10% ในกลุ่มทดสอบ

ขั้นตอนที่ 6: ขีดจำกัดและการเพิ่มประสิทธิภาพ

วัตถุประสงค์ของขั้นตอน

ตั้งค่าควบคุมการทำงานพร้อมกัน เวลาในการตอบสนอง การลองใหม่ การหมุน และการเก็บข้อมูล เพื่อใช้ทรัพยากร Apify อย่างคุ้มค่าและเพิ่มความเสถียรของการเก็บข้อมูล

คู่มือทีละขั้นตอน

  1. จำกัดจำนวนการทำงานพร้อมกัน ในการตั้งค่าของ crawler ตั้งค่า maxConcurrency ตั้งแต่ 1 ถึง 3 สำหรับเริ่มต้น เพิ่มขึ้นทีละน้อย ยิ่งความร่วมมือมาก ภาระงานบนพร็อกซีและเว็บไซต์ก็ยิ่งมาก
  2. ตั้งค่าการทดลองใหม่ ใน Crawlee มี retryCount และ retryTimeoutMillis ตั้งค่า retryCount = 1–2 เพื่อไม่ให้เรียกใช้งานหน้าที่ไม่เสถียรโดยไม่มีที่สิ้นสุด
  3. จัดการเวลาการปฏิบัติงาน เพิ่ม requestHandlerTimeoutSecs ไปที่ 90–120 สำหรับหน้าเว็บที่ซับซ้อน สิ่งนี้จะช่วยลดเวลาที่ล่าช้าจากการตอบสนองที่ช้า
  4. เพิ่มระยะเวลาหยุดชะงักแบบสุ่ม ลงในอัตราการรอระหว่างคำขอ โดยจะเพิ่มเข้าไปในช่วง 300–1500 มิลลิวินาที ดูให้สมจริง และลดความเสี่ยงจากการถูกจำกัด
  5. วางแผนการหมุนพร็อกซีจากผู้ให้บริการในขอบเขตที่เหมาะสม หาก mobileproxy.space อนุญาตให้เรียก IP ใหม่ตามเวลา ให้ทำการเลือกช่วงเวลาที่ไม่ทำลายเสถียรภาพในเซสชั่น
  6. ตรวจสอบขีดจำหน่ายของ Apify: หน่วยความจำ CPU เวลา ในการตั้งค่าการเปิดใช้งาน ให้ตั้งค่าหน่วยความจำ (เช่น 1024–2048 MB สำหรับ Playwright) และระยะเวลาในการทำงานสูงสุด (เช่น 30–60 นาทีสำหรับการทำงานเป็นกลุ่ม)
  7. เก็บข้อมูลฟิลด์ที่ต้องใช้เท่านั้น ยิ่งมีข้อมูลที่ไม่จำเป็นใน Dataset น้อยเท่าไร ก็จะยิ่งลดภาระงานที่ต้องใช้ในการเก็บข้อมูลและการส่งออกให้เร็วขึ้น
  8. เปิดใช้งานการบันทึกในระดับ INFO และเฉพาะในระดับ DEBUG เมื่อต้องการแก้ไขปัญหา ปริมาณข้อมูลที่มากเกินไปอาจทำให้การอ่านลำบากในโหมดปกติ

สิ่งสำคัญ

การประหยัดของขีดจำกัด สามารถทำได้โดยวิธีที่ง่าย เช่น การเริ่มต้นที่ความสามารถคู่ขนาดต่ำ การลองใหม่ที่สั้น ตัวเลือกที่ถูกต้อง และการลดจำนวนครั้งที่ไม่จำเป็นในการเข้าถึงหน้า การควบคุม ด้วยบันทึกและการติดตามช่วยแก้ไขการตั้งค่าได้

เคล็ดลับ: เก็บ URL ที่สำเร็จใน Key-Value Store หรือที่เก็บภายนอก ซึ่งจะทำให้คุณจัดการใหม่ได้จากจุดที่ล้มเหลวและหลีกเลี่ยงการประมวลผลหน้าเว็บซ้ำ

ผลลัพธ์ที่คาดหวัง

นักแสดงทำงานได้อย่างรอบคอบและใช้ทรัพยากรน้อยลง ข้อผิดพลาดที่จะเกิดขึ้นส่วนน้อยและเป็นสิ่งที่คาดหวังได้ ข้อมูลของ timeouts และการทำงานพร้อมกันได้ถูกปรับให้เข้ากับความเร็วของพร็อกซีมือถือของคุณและความซับซ้อนของเว็บไซต์

ปัญหาที่เป็นไปได้และวิธีแก้ไข

  • การเพิ่มเวลาในการหยุดชะงักไม่ได้ช่วย สาเหตุ: ข้อมูลมีจำนวนมากหรือติดปัญหาจากผู้ให้บริการ วิธีแก้ไข: ลดจำนวนการใช้งานพร้อมกันลงไปที่ 1 และตรวจสอบความเสถียรของการเชื่อมต่อ
  • ความเร็วช้าเกินไป สาเหตุ: คอขวดในคอมพิวเตอร์หรือเว็บไซต์หนัก วิธีแก้ไข: เพิ่มระยะเวลาในการหยุดชะงัก แต่อย่าลืมแบ่งงานเป็นกลุ่มเล็ก

✅ การตรวจสอบ: เวลาที่ใช้ในการเปิดเพจมีความเสถียร อัตราข้อผิดพลาดไม่สูงขึ้นเมื่อเพิ่มขนาด ขีดจำกัดหน่วยความจำและเวลามักจะไม่ถูกละเมิด

การตรวจสอบผลลัพธ์

รายการตรวจสอบ: สิ่งที่ต้องทำให้ทำงานได้

  • นักแสดงเปิดใช้งานได้โดยไม่มีข้อผิดพลาดและสามารถทำงานเสร็จสมบูรณ์ได้อย่างถูกต้อง
  • พร็อกซีมือถือถูกเชื่อมต่อ และ IP ในคำขอพิสูจน์แน่นอนว่ามีอยู่ในพร็อกซี
  • Dataset มีฟิลด์และค่าที่คาดหวังอยู่
  • บันทึกมีความหมายแต่ไม่มากเกินไป
  • เมื่อทำซ้ำจะไม่มีการซ้ำซ้อนเกินไป (หรือควบคุมได้)

วิธีทดสอบ

  1. เรียกใช้นักแสดงบน URL ทดลอง 2–3 แท็บ พร้อมเชื่อมต่อพร็อกซี และตรวจสอบ IP ผ่านหน้าควบคุม
  2. เปรียบเทียบตัวเลข: จำนวนคำขอที่เพิ่มเข้าไปและจำนวนผลลัพธ์ที่คุณได้รับ ซึ่งควรตรงกันหรือแตกต่างกันน้อยกว่า 5-10%
  3. ส่งออก Dataset เป็น CSV และตรวจสอบว่าข้อมูลสะอาดอยู่: ไม่มี null ในฟิลด์ที่คาดว่าจะมีค่า

ตัวชี้วัดผลสำเร็จ

  • อัตราการไม่สำเร็จของคำขอต่ำกว่า 5–10% ในกรณีทดสอบ
  • เวลาเฉลี่ยในการจัดการหน้าอยู่ในระดับที่เสถียรและคาดเดาได้
  • ไม่มีการเพิ่มขึ้นอย่างผิดปกติในเวลาหยุดชะงักและข้อผิดพลาดในการเข้าถึงพร็อกซี

เคล็ดลับ: บันทึกกลุ่ม URL ที่คุณควบคุมและทำการทดสอบซ้ำก่อนการเปลี่ยนแปลงที่สำคัญในโค้ดแต่ละครั้ง จะช่วยให้คุณจับปัญหาที่เกิดขึ้นได้เร็วขึ้น

ข้อผิดพลาดทั่วไปและแนวทางแก้ไข

  • ปัญหา: 407 ต้องการการพิสูจน์ตัวตนพร็อกซี สาเหตุ: ข้อมูลการเข้าถึงพร็อกซีไม่ถูกต้อง วิธีแก้ไข: ตรวจสอบชื่อผู้ใช้และรหัสผ่าน ปรับปรุงตัวแปรสภาพแวดล้อม และรีบูตนักแสดง
  • ปัญหา: ECONNRESET และ ETIMEDOUT ในบันทึก สาเหตุ: ความไม่เสถียรของเครือข่ายหรือภูมิประเทศที่มีการบรรทุกสูง วิธีแก้ไข: ลด maxConcurrency เพิ่มเวลาในการหยุดชะงักและเพิ่มเวลาในการรอระหว่างคำขอ
  • ปัญหา: ฟิลด์ว่างใน Dataset สาเหตุ: ตัวเลือกไม่ถูกต้องหรือติดข้อจำกัดวิธีการจัดเก็บ ช่วยเหลือ: ใช้ PlaywrightCrawler เพิ่มการรอที่ชัดเจน ปรับปรุงตัวเลือก
  • ปัญหา: ขีดจำกัดหน่วยความจำเกิน สาเหตุ: มีแท็บร่วมกันมากเกินไปหรือมีข้อมูลเพิ่มเติมรวมกัน วิธีแก้ไข: ลดจำนวนร่วมกันของการใช้งาน ลดการเก็บข้อมูล หรือเพิ่ม Memory ในการตั้งค่าเริ่มต้น
  • ปัญหา: การเก็บข้อมูลช้ามาก สาเหตุ: เว็บไซต์ที่มีความหนักหรือใช้เครือข่ายมือถือ วิธีการแก้ไข: ทบทวนลำดับความสำคัญของข้อมูล แบ่งการทำงานเป็นกลุ่มเล็กๆ ปรับปรุงตัวเลือก และลดการนำทางที่ไม่จำเป็น
  • ปัญหา: ข้อมูลที่ซ้ำกันในระดับผลลัพธ์ สาเหตุ: การทำงานซ้ำจาก URL เดียวกันโดยไม่มีการกรอง วิธีแก้ไข: ทำรายชื่อเส้นทางที่เรียกใช้งานใน Queue Requests โดยมีการจัดระเบียบแบบไม่ซ้ำกัน หรือทำการตรวจสอบการซ้ำซ้อนก่อนการบันทึก
  • ปัญหา: เว็บมีการตอบสนองที่ไวต่อคำขอบ่อยครั้ง สาเหตุ: ความเร็วที่ดีเกินไป วิธีการแก้ไข: ลดความเร็ว ลงเวลาให้มีการหน่วงในการเรียกตรวจสอบเช่น user-agent ที่มีการอัปเดต

เคล็ดลับ: เมื่อการแก้ไข ให้เปิดใช้งานบันทึกที่ละเอียดสำหรับหนึ่งหรือสอง URL และวิเคราะห์การทำงานของแต่ละขั้นตอน มันจะเร็วกว่าในการจัดการกับกลุ่มใหญ่

ฟีเจอร์พิเศษ

การตั้งค่าขั้นสูง

  • ความลับและการกำหนดค่า เก็บ MOBILE_PROXY_URL และคีย์อื่นๆไว้ในส่วนความลับ ในโค้ดให้อ่านผ่าน process.env
  • การเปลี่ยน User-Agent เพื่อเลียนแบบนายจ้างมือถือให้ตั้งค่า User-Agent เป็นยี่ห้อมือถือและขนาดหน้าต่างที่เหมาะสมใน Playwright เพียงทำในระดับที่ยอมรับได้และเฉพาะเมื่อจำเป็น
  • การจัดกำหนดการ แ สำหรับตกดึก สร้าง Task และตั้งวันเวลาในการเรียกใช้งาน (ทุกวัน ทุกชั่วโมง) ตรวจสอบการนับในเสภาเสมอ

การเพิ่มประสิทธิภาพ

  • การเก็บข้อมูล ซ้ำ หากเว็บไซต์มีการเปลี่ยนแปลงน้อย ให้บันทึกการทำงานร่วมกับข้อมูลที่มีอยู่ก่อน
  • การจัดลำดับความสำคัญ ใช้ Request Queue ดูแลลำดับความสำคัญให้กับลิงค์สำคัญและข้ามลิงค์รอง
  • แบ่งให้เป็นไมโครเซอร์วิส การนำของการเก็บข้อมูลโดยใช้ความซับซ้อนและแบ่งออกเป็นนักแสดงต่างๆ: การเก็บลิงค์ การจัดการตัวผลิตภัณฑ์ การตรวจสอบ และการนำออก

กิจกรรมเพิ่มเติม

  • การรวมข้อเสนอ API เชื่อมโยงการส่งผลลัพธ์ไปยัง CRM ของคุณ หรือระบบวิเคราะห์หลังจากการเรียกใช้งานผ่าน Webhook
  • การตรวจสอบข้อมูล ตรวจสอบแบบอย่างก่อนการส่งออก ต้องใช้ประเภทที่ถูกต้องและน้ำหนัก
  • ลิงค์ภายในเอกสารย้อนกลับให้กลับไปที่ เว็บห้องเสนอเกี่ยวกับ ขีดจำกัดและการเพิ่มประสิทธิภาพ เมื่อตั้งค่าประสิทธิภาพ

เคล็ดลับ: ใช้โหมดเบื้องต้นและกลุ่มเล็กเพื่อทดสอบในตาราง แล้วค่อยๆเพิ่มสเกลขึ้น

FAQ

  • จะรู้ได้อย่างไรว่าพร็อกซีเป็นแบบมือถือหรือไม่? ตรวจสอบ ASN และประเภทของเครือข่ายจาก IP ผ่านฐานข้อมูลและเปรียบเทียบกับผู้ให้บริการมือถือ พร็อกซีมือถือมักจะมีพูลที่อยู่ที่มีลักษณะเฉพาะ
  • สามารถใช้พร็อกซีมือถือหลายตัวได้หรือไม่? ได้ โปรดระบุหลาย proxyUrls Crawlee จะเลือกโดยอัตโนมัติจากในรายการ
  • จะทำอย่างไรถ้าหากเว็บไซต์แสดงคาแร็คเตอร์? ลดความถี่ เพิ่มแรงหน่วง ตรวจสอบหัวเรื่อง และคำนึงถึงการใช้งาน API ทางการ อย่ากระทำการที่ละเมิดกฎโหลด
  • ควรทำอย่างไรเพื่อจัดเก็บรหัสผ่านพร็อกซีอย่างปลอดภัย? ใช้ตัวแปรสภาพแวดล้อมและ secrets บนแพลตฟอร์ม Apify อย่าเข้าถึงรหัสผ่านใน git
  • ต้องเปลี่ยน User-Agent เป็นโมบายไหม? เฉพาะในกรณีที่เว็บไซต์แสดงผลที่แตกต่างกัน ในกรณีปกติพฤติกรรมที่เสถียรและเวลาหยุดชะงักที่ถูกต้องก็เพียงพอ
  • ทำไม CheerioCrawler จึงเร็วกว่า? เนื่องจากจะไม่เรนเดอร์หน้า แต่จะพิจารณา HTML สำหรับหน้าที่มีความซับซ้อน ให้ใช้ PlaywrightCrawler แม้จะใช้เวลามากกว่า
  • จะส่งออกผลลัพธ์ได้อย่างไร? ในอินเตอร์เฟส Dataset ให้เลือกส่งออกเป็น CSV, JSON, XLSX หรือใช้ API Datasets หากคุณต้องการทำการส่งออกอัตโนมัติ
  • สามารถรวมใช้ Apify Proxy และพร็อกซีมือถือได้หรือไม่? ในการดำเนินการเดียวกันควรใช้หนึ่งอย่างเช่นหากต้องการแหล่งที่แตกต่างกันควรแยกงานที่ทำให้ใช้แอปพลิเคชันต่างกันหรือการตั้งค่าการเปิด
  • อย่างที่ปลอดภัยคือจำนวนคำขอต่อวินาทีที่มาก? เริ่มต้นจาก 1–3 ต่อวินาทีและตรวจสอบมาตรวัด หากมีสาขาที่มีความไวให้ลดลงเป็น 0.2–0.5 ด้วยช่วงเวลา
  • จำเป็นต้องเปิด headful ใน Playwright หรือไม่? เฉพาะสำหรับการแก้ไข ในโปรดักชั่นให้ใช้ headless เพื่อประหยัดทรัพยากร

สรุป

คุณได้ตั้งค่าและสร้างนักแสดง Apify ด้วยพร็อกซีมือถือ ค้นพบแนวคิดและหลักการที่สำคัญ ได้ทำการเก็บข้อมูลวิจัยทดสอบจากหน้าผลิตภัณฑ์และปรับ%sให้หมดมีการที่แน่ใจด้วยการดำเนินการแบบกลับเนื้อไปസം;เรียนรู้การปรับสมดุลเวลาใช้และเก็บข้อมูลที่ผ่านมาเพื่อให้คุณเริ่มเข้าใจ; คุณสามารถขยายโปรเจกต์โดยเพิ่มหน้าใหม่ เพิ่มเทพแพลตฟอร์ม หรือติดตั้งงานอัตโนมัติ หากมีข้อสงสัย อย่าลืมกลับไปที่ FAQ หรือกลับไปที่ ข้อจำกัดและการเพิ่มประสิทธิภาพ จำไว้ว่าพร็อกซีมือถือเป็นเครื่องมือในการเพิ่มความเสถียรและความเป็นธรรมชาติของข้อมูล ไม่ใช่วิธีการเพื่อหลีกเลี่ยงข้อจำกัด ดำเนินการอย่างมีจริยธรรมปฏิบัติตามกฎข้อบังคับจากเว็บเสมอ และเริ่มจากการทำงานเล็กน้อยโดยตรวจสอบทุกการเปลี่ยนแปลง