- Cloudflare เปิดให้ใช้งาน เอนด์พอยต์ /crawl ใหม่ของ Browser Rendering ในสถานะโอเพนเบตา โดยสามารถครอว์ลทั้งเว็บไซต์ได้ด้วยการเรียก API เพียงครั้งเดียว
- เมื่อส่ง URL เริ่มต้นเข้าไป ระบบจะนำทางผ่านหน้าเว็บโดยอัตโนมัติ ทำการ เรนเดอร์ด้วยเฮดเลสเบราว์เซอร์ และส่งผลลัพธ์กลับในรูปแบบ HTML, Markdown, JSON
- มีฟีเจอร์ ควบคุมขอบเขตการครอว์ล หลากหลาย เช่น เอาต์พุต JSON แบบมีโครงสร้างที่อาศัย Workers AI, ความลึกในการครอว์ล, การจำกัดจำนวนหน้า, แพตเทิร์นไวลด์การ์ด รวมถึงการครอว์ลแบบเพิ่มเฉพาะส่วนและโหมดสแตติก
- ปฏิบัติตาม กฎ robots.txt และรองรับ crawl-delay เพื่อป้องกันทราฟฟิกที่ผิดปกติ
- สามารถนำไปใช้กับการฝึกโมเดล, การสร้าง RAG pipeline, การวิจัยและมอนิเตอร์คอนเทนต์ทั้งเว็บไซต์
ภาพรวมของเอนด์พอยต์ /crawl
- เอนด์พอยต์ /crawl ที่เพิ่งเพิ่มเข้ามาใหม่ในบริการ Browser Rendering ของ Cloudflare มอบความสามารถในการสำรวจทั้งเว็บไซต์และรวบรวมคอนเทนต์ด้วยการเรียก API เพียงครั้งเดียว
- ผู้ใช้เพียงส่ง URL เริ่มต้น ระบบจะตามลิงก์โดยอัตโนมัติ เรนเดอร์หน้าเว็บ และส่งผลลัพธ์กลับมา
- สามารถเลือกผลลัพธ์ที่ส่งกลับได้ในรูปแบบ HTML, Markdown, หรือ JSON แบบมีโครงสร้าง
- ฟีเจอร์นี้เปิดให้ใช้งานในสถานะ โอเพนเบตา (open beta) และใช้งานได้ทั้งใน แพลน Workers แบบ Free และ Paid
- งานครอว์ลจะทำงานแบบ อะซิงโครนัส (asynchronous)
- เมื่อส่ง URL เข้าไปจะได้รับ job ID และสามารถกลับมาตรวจผลลัพธ์ได้เมื่อการประมวลผลเสร็จสิ้น
- หน้าต่าง ๆ จะถูกประมวลผลตามลำดับ และสามารถตรวจดูผลลัพธ์ที่เสร็จแล้วได้เป็นขั้น ๆ
ฟีเจอร์หลัก
- รองรับหลายรูปแบบเอาต์พุต
- ส่งผลลัพธ์กลับได้หลายรูปแบบ เช่น HTML, Markdown, JSON
- รูปแบบ JSON จะให้ข้อมูลแบบมีโครงสร้างผ่าน Workers AI
- การควบคุมขอบเขตการครอว์ล (crawl scope controls)
- สามารถตั้งค่า ความลึกในการครอว์ล (depth), การจำกัดจำนวนหน้า, และ การรวม/ยกเว้นแพตเทิร์น URL ได้
- การค้นพบหน้าอัตโนมัติ (automatic page discovery)
- ค้นหา URL อัตโนมัติโดยอิงจาก sitemap, ลิงก์ภายในหน้า, หรือทั้งสองอย่าง
- การครอว์ลแบบเพิ่มเฉพาะส่วน (incremental crawling)
- ใช้พารามิเตอร์
modifiedSince และ maxAge เพื่อข้ามหน้าที่ไม่มีการเปลี่ยนแปลง ช่วยลดเวลาและค่าใช้จ่าย
- โหมดสแตติก (static mode)
- เมื่อกำหนด
render: false จะไม่เปิดเบราว์เซอร์ และ ดึงเฉพาะ HTML แบบสแตติก ทำให้ครอว์ลเว็บไซต์สแตติกได้รวดเร็ว
- บอตที่ทำงานอย่างเหมาะสม (well-behaved bot)
- ปฏิบัติตามข้อกำหนดใน robots.txt และรับรู้การตั้งค่า crawl-delay
การใช้งานและเอกสารอ้างอิง
แพลนที่รองรับ
- ใช้งานได้ทั้งใน แพลน Workers แบบ Free และ Paid
5 ความคิดเห็น
ลองใช้แบบคร่าว ๆ แล้ว แต่ดูเหมือนว่าจะฝ่าการบล็อกบอทไม่ได้ครับ ตอนนี้สำหรับผมก็น่าจะยังใช้ apify หรือ zyte เป็นหลักต่อไปอยู่ดี.. 555
อันนี้ทะลุฟีเจอร์บล็อกบอตของ Cloudflare ได้ด้วยไหม?
เหมือนทั้งขายหอกทั้งขายโล่เลยเหรอ??
รู้สึกแปลก ๆ นะ ฮ่าๆ
เหมือนเริ่มเป็น Everyone's Marble กันแล้วนะ 555
แบบว่าเป็นความสามารถพิเศษอะไรสักอย่างที่ทำให้การ์ดอะไรสักอย่างป้องกันการลบล้างความสามารถอะไรสักอย่าง....
5555 ดูแล้วก็ขำดีนะ
ความคิดเห็นบน Hacker News
จากประสบการณ์ของฉัน บนหน้าเว็บที่ถูกป้องกันด้วย Cloudflare สิ่งนี้ ใช้ไม่ได้ผล
น่าเสียดายที่มันเหมือนสร้างปัญหาขึ้นมาเองแล้วค่อยกลับมาขายทางแก้
น่าแปลกที่ Cloudflare ไม่โฮสต์ เวอร์ชันที่สแครปล่วงหน้าไว้แล้ว ของเว็บไซต์ที่ใช้พร็อกซีของตัวเอง
เช่น อาจเปิดให้ในรูปแบบอย่าง https://www.example.com/cdn-cgi/cached-contents.json ก็ได้ เพราะยังไงก็มีคอนเทนต์อยู่ในแคชแล้ว เลยคิดว่าไม่น่าจำเป็นต้องผ่านบริการหรือ API สำหรับสแครปอีก
แน่นอนว่าคงมีเหตุผลที่ไม่ทำแบบนั้น แต่ก็ยังน่าแปลกที่มันไม่ได้เป็นตัวเลือกพื้นฐาน
จะใส่ access control ก็ได้ แต่สุดท้ายมันก็เท่ากับสร้าง CDN API ที่ซับซ้อน ขึ้นมาใหม่โดยไม่มีใครต้องการ แถมยังมีปัญหาทางกฎหมายตามมา
ระหว่าง “JSON ที่ใช้งานสะดวก” กับ “ส่งมอบทั้งเว็บไซต์ให้ AI scraper” มันต่างกันแค่นิดเดียว
ถ้าแปลงเฉพาะตอนมีคำขอ ก็ยังลดคำขอไปยังต้นทางได้พร้อมรักษาประสิทธิภาพของแคชไว้
ตอนที่ฉันทำงานกับ CDN เราใช้ ‘second hit caching’ เพื่อเพิ่มอัตรา cache hit — คือจะเก็บลงแคชก็ต่อเมื่อมีคำขอครั้งที่สองเข้ามาเท่านั้น
ถ้าเปิด Markdown for Agents ระบบ AI ที่ขอ
text/markdownจะได้รับ HTML ที่ถูก แปลงเป็น Markdown แบบเรียลไทม์การที่ Cloudflare ขายทั้ง ระบบป้องกันการสแครป และบริการสแครปไปพร้อมกัน มันให้ความรู้สึกเหมือน มาเฟีย
เป็นสิ่งที่ทำได้เพราะมีอิทธิพลครอบคลุมอินเทอร์เน็ตในวงกว้าง
DNS มีไว้เพื่อเก็บข้อมูลและสร้าง ‘ภาพลักษณ์ที่ดี’
คือให้ผู้เผยแพร่อยู่หลัง Cloudflare แล้วถ้าบริษัท AI ต้องการข้อมูล ก็ต้องเข้าถึงแบบมีค่าใช้จ่ายผ่าน Cloudflare
ลูกค้าหลักไม่ใช่ผู้ใช้ทั่วไป แต่เป็นบริษัท AI
/crawlเคารพrobots.txtกล่าวคือ URL ที่ห้ามครอลจะถูกแสดงในผลตอบกลับเป็น
"status": "disallowed"การเปิด crawl endpoint แบบมีโครงสร้างให้ใช้ รู้สึกเหมือนเป็นวิวัฒนาการตามธรรมชาติของ
robots.txtหรือsitemapถ้ามีเว็บไซต์มากขึ้นที่ให้ จุดเข้าใช้งานสำหรับเครื่องอ่าน แบบนี้ การทำดัชนีก็น่าจะมีประสิทธิภาพขึ้นมาก
ตอนนี้ crawler ยังเสียทรัพยากรไปกับการสำรวจโครงสร้างเดิมซ้ำ ๆ อยู่มาก
ฉันชอบแนวทางที่ออกแบบ API โดยยึดมนุษย์เป็นศูนย์กลาง แล้วให้ผู้ให้บริการ LLM ไปปรับแต่งต่อบนสิ่งนั้นมากกว่า
HTML และ DOM มีโครงสร้างโดยพื้นฐานเพื่อ ให้เครื่องอ่านได้
ไม่จำเป็นต้องประดิษฐ์ของใหม่ แค่ใช้เทคโนโลยีที่มีอยู่ให้ถูกต้องก็พอ
เช่น เอาหน้าปกติให้คนเห็น แต่ส่งอีกหน้าหนึ่งให้บอตแทน
น่าเสียดายที่มันไม่รองรับฟอร์แมต WARC ทั้งที่น่าจะใช้สำหรับ การเก็บถาวรเว็บ ได้ดี
มันน่าจะมีประโยชน์กับนักข่าวหรือนักวิจัย
เซิร์ฟเวอร์ต้นทางยังสามารถ ตรวจจับและบล็อกคำขอ Browser Rendering ของ Cloudflare ได้อยู่
แยกได้ด้วยเฮดเดอร์
CF-Workerและกรองได้ในกฎ WAF หรือมิดเดิลแวร์อย่างไรก็ตาม คำขอเหล่านี้มาจาก Cloudflare ASN 13335 และมี bot score ต่ำ จึงใช้การป้องกันแบบดูคะแนนอย่างเดียวไม่ได้ผล
สุดท้ายแล้ว การจำกัดอัตราในระดับแอปพลิเคชันและการวิเคราะห์พฤติกรรม มีประสิทธิภาพมากกว่า
มันมีความขัดแย้งเชิงโครงสร้างอยู่ แต่ก็คล้ายกับกรณีที่เสิร์ชเอนจินมีเครื่องมือสำหรับเว็บมาสเตอร์
robots.txtดังนั้นนั่นคือวิธีที่ง่ายที่สุดฉันสงสัยว่า crawler ตัวนี้ทำงานก่อนหรือหลัง logic บล็อกบอต
ฉันเคยคิดว่าน่าจะดีถ้าสามารถให้บริการ เวอร์ชันที่ครอลได้ดี ของเว็บไซต์ฉันเอง
ถ้าให้ฟีเจอร์แบบนั้นกับผู้ดูแลเว็บไซต์ crawler ก็น่าจะแค่จ่ายค่าแบนด์วิดท์แล้วเข้าถึงได้
อาจทำเป็นให้รันงานครอลกับเว็บไซต์ของฉันโดยตรง แล้วนำไปเสิร์ฟผ่านซับโดเมน
static.ก็ได้ถ้าเว็บเป็นแบบสแตติก ก็แค่เรนเดอร์เป็น HTML แล้วโฮสต์ไว้ก็พอ ส่วนถ้าเป็นแบบไดนามิก ก็สงสัยว่าสแนปช็อตจะมีความหมายแค่ไหน
การเพิ่มแคชน่าจะเป็นแนวทางที่ดีกว่า
ช่วงนี้ Cloudflare ดูเหมือนจะ กวาดเอาฟีเจอร์เจ๋ง ๆ ไปหมด
เลยสงสัยว่า AWS กำลังทำอะไรอยู่
ฟีเจอร์นี้น่าประทับใจมากจริง ๆ
Cloudflare กำลัง ขยับตัวล่วงหน้าไปในทิศทางของอนาคต