- Cloudflare cung cấp endpoint /crawl mới của Browser Rendering dưới dạng beta công khai, cho phép thu thập toàn bộ website chỉ với một lần gọi API
- Khi gửi URL khởi đầu, hệ thống sẽ tự động khám phá các trang, render bằng trình duyệt headless, và trả về kết quả ở định dạng HTML, Markdown, JSON
- Cung cấp nhiều tính năng như đầu ra JSON có cấu trúc dựa trên Workers AI, kiểm soát phạm vi bằng độ sâu crawl, giới hạn số trang, mẫu wildcard, cùng crawl gia tăng và chế độ tĩnh
- Tuân thủ quy tắc robots.txt và cũng hỗ trợ crawl-delay để tránh lưu lượng bất thường
- Có thể dùng cho huấn luyện mô hình, xây dựng pipeline RAG, nghiên cứu và giám sát nội dung trên toàn bộ website
Tổng quan về endpoint /crawl
- Endpoint /crawl mới được bổ sung vào dịch vụ Browser Rendering của Cloudflare cung cấp khả năng duyệt toàn bộ website và thu thập nội dung chỉ với một lần gọi API
- Người dùng chỉ cần gửi URL khởi đầu, hệ thống sẽ tự động lần theo các liên kết, render trang và trả về kết quả
- Có thể chọn định dạng trả về là HTML, Markdown, hoặc JSON có cấu trúc
- Tính năng này hiện được cung cấp ở trạng thái beta công khai (open beta) và có thể dùng trên cả gói Workers Free và Paid
- Tác vụ crawl được thực hiện theo cách bất đồng bộ (asynchronous)
- Sau khi gửi URL, người dùng sẽ nhận được job ID và có thể truy vấn kết quả khi quá trình xử lý hoàn tất
- Các trang được xử lý tuần tự và có thể kiểm tra dần các kết quả đã hoàn thành
Tính năng chính
- Hỗ trợ nhiều định dạng đầu ra
- Trả về kết quả ở nhiều định dạng như HTML, Markdown, JSON
- Định dạng JSON được cung cấp dưới dạng dữ liệu có cấu trúc thông qua Workers AI
- Kiểm soát phạm vi crawl (crawl scope controls)
- Có thể thiết lập độ sâu crawl (depth), giới hạn số trang, và bao gồm/loại trừ theo mẫu URL
- Tự động khám phá trang (automatic page discovery)
- Tự động khám phá URL dựa trên sitemap, liên kết trên trang, hoặc cả hai
- Crawl gia tăng (incremental crawling)
- Dùng tham số
modifiedSince và maxAge để bỏ qua các trang không thay đổi, giúp tiết kiệm thời gian và chi phí
- Chế độ tĩnh (static mode)
- Khi đặt
render: false, hệ thống không khởi chạy trình duyệt mà chỉ lấy HTML tĩnh, cho phép crawl nhanh các website tĩnh
- Bot hoạt động đúng chuẩn (well-behaved bot)
- Tuân thủ các chỉ dẫn trong robots.txt và cũng nhận biết thiết lập crawl-delay
Ứng dụng và tài liệu tham khảo
Các gói hỗ trợ
- Có thể dùng trên cả gói Workers Free và Paid
4 bình luận
Mình thử qua nhẹ rồi, có vẻ nó vẫn chưa vượt được chặn bot, nên chắc hiện tại mình vẫn sẽ ưu tiên dùng apify hoặc zyte hơn.. haha
Cái này có xuyên luôn cả tính năng chặn bot của Cloudflare không?
Là vừa bán giáo vừa bán khiên à??
Thấy hơi lạ đó haha
Đúng là cảm giác như bắt đầu chơi Everybody's Marble vậy đó hahaha
Nào là vô hiệu hóa khả năng phòng thủ của lá bài nào đó, rồi vô hiệu hóa năng lực đặc biệt nào đó....
Ý kiến trên Hacker News
Theo kinh nghiệm của tôi, trên các trang được Cloudflare bảo vệ thì thứ này không hoạt động
Đáng tiếc là kiểu như tự tạo ra vấn đề rồi lại bán giải pháp
Khá bất ngờ là Cloudflare không lưu trữ phiên bản đã được scrape sẵn của các website dùng proxy của họ
Ví dụ, họ hoàn toàn có thể cung cấp theo dạng như https://www.example.com/cdn-cgi/cached-contents.json, vì nội dung đã có sẵn trong cache rồi nên tôi nghĩ đâu cần phải đi qua dịch vụ hay API scraping làm gì
Tất nhiên chắc hẳn có lý do để họ không làm vậy, nhưng việc đây không phải tùy chọn mặc định vẫn khá bất ngờ
Có thể thêm kiểm soát truy cập, nhưng như vậy rốt cuộc lại thành tạo ra một CDN API phức tạp mà chẳng ai mong muốn, chưa kể còn phát sinh vấn đề pháp lý
Từ “JSON tiện lợi” đến “giao toàn bộ website cho AI scraper” chỉ cách nhau một bước rất nhỏ
Nếu chỉ chuyển đổi khi có yêu cầu thì vẫn có thể giảm request tới máy chủ gốc mà vẫn giữ hiệu quả cache
Khi tôi làm ở CDN, chúng tôi dùng 'second hit caching' để tăng cache hit rate — tức là chỉ lưu vào cache khi có request thứ hai
Nếu bật Markdown for Agents, khi hệ thống AI yêu cầu
text/markdownthì HTML sẽ được chuyển sang Markdown theo thời gian thựcViệc Cloudflare vừa bán giải pháp chống scraping vừa bán dịch vụ scraping nghe cứ như xã hội đen vậy
Điều đó chỉ khả thi nhờ ảnh hưởng của họ trên toàn bộ Internet
DNS là để thu thập dữ liệu và xây dựng 'hình ảnh tốt đẹp'
Publisher ở sau Cloudflare, còn nếu công ty AI muốn dữ liệu thì sẽ phải trả tiền để truy cập thông qua Cloudflare
Tệp khách hàng chính không phải người dùng phổ thông mà là các công ty AI
/crawlcó tôn trọngrobots.txtNghĩa là các URL bị cấm crawl sẽ được đánh dấu là
"status": "disallowed"trong phản hồiViệc công khai một crawl endpoint có cấu trúc cho cảm giác như là bước tiến hóa tự nhiên của
robots.txthaysitemapNếu có nhiều site hơn cung cấp những điểm vào cho máy đọc như vậy, việc lập chỉ mục sẽ hiệu quả hơn rất nhiều
Hiện giờ các crawler đang lãng phí rất nhiều tài nguyên vì liên tục phải khám phá lại cùng một cấu trúc
Tôi thích cách thiết kế API hướng đến con người, rồi để các nhà cung cấp LLM tối ưu ở tầng trên
HTML và DOM về bản chất là cấu trúc để máy đọc
Không cần phát minh cái mới, chỉ cần tận dụng đúng các công nghệ sẵn có là được
Nó có thể bị lạm dụng theo kiểu hiển thị trang bình thường cho con người, nhưng lại đưa ra trang khác cho bot
Đáng lẽ có thể dùng cho mục đích lưu trữ web, nên việc không hỗ trợ định dạng WARC khá đáng tiếc
Nó hẳn sẽ hữu ích cho nhà báo hoặc nhà nghiên cứu
Máy chủ gốc vẫn có thể phát hiện và chặn các request Browser Rendering của Cloudflare
Có thể phân biệt qua header
CF-Worker, và có thể lọc bằng quy tắc WAF hoặc middlewareTuy nhiên, các request này đến từ ASN 13335 của Cloudflare và có bot score thấp, nên các biện pháp phòng thủ chỉ dựa trên điểm số đơn giản sẽ không hiệu quả
Cuối cùng thì giới hạn tốc độ ở tầng ứng dụng và phân tích hành vi vẫn hiệu quả hơn
Mâu thuẫn về mặt cấu trúc là có thật, nhưng cũng khá giống với việc công cụ tìm kiếm cung cấp công cụ cho webmaster
robots.txt, nên đó là cách đơn giản nhấtTôi đã tự hỏi crawler này hoạt động trước hay sau logic chặn bot
Tôi từng nghĩ sẽ rất hay nếu có thể cung cấp một phiên bản đã được crawl tốt của site mình
Nếu cho quản trị viên website một tính năng như vậy, crawler có thể chỉ cần trả chi phí truyền tải để truy cập
Có vẻ cũng có thể triển khai bằng cách tự chạy job crawl nhắm vào site của mình rồi cung cấp qua subdomain
static.Nếu site là tĩnh thì cứ render ra HTML rồi host là được, còn nếu là động thì ảnh chụp snapshot có ý nghĩa gì cũng đáng nghi ngờ
Có lẽ thêm cache sẽ là cách tiếp cận tốt hơn
Dạo này có cảm giác Cloudflare đang ôm hết mọi tính năng hay ho
Không biết AWS đang làm gì nữa
Tính năng lần này thực sự rất ấn tượng
Cloudflare đang đi trước để đón đầu tương lai