21 điểm bởi GN⁺ 2024-07-11 | 2 bình luận | Chia sẻ qua WhatsApp
  • Crawlee là thư viện Python dành cho web scraping và tự động hóa trình duyệt
  • Giúp nhanh chóng xây dựng các crawler đáng tin cậy
  • Có thể dùng để trích xuất dữ liệu cho AI, LLM, RAG, GPT
  • Có thể tải xuống các tệp như HTML, PDF, JPG, PNG từ website
  • Hoạt động cùng BeautifulSoup, Playwright và HTTP thuần
  • Hỗ trợ cả chế độ Headful và Headless
  • Cung cấp tính năng xoay vòng proxy

Tính năng

  • Cung cấp giao diện hợp nhất cho crawling bằng HTTP và trình duyệt Headless
  • Tự động thực hiện crawling song song dựa trên tài nguyên hệ thống khả dụng
  • Được viết bằng Python có sử dụng type hint, giúp cải thiện tự động hoàn thành trong IDE và giảm lỗi
  • Tự động thử lại khi xảy ra lỗi hoặc khi bị chặn
  • Tích hợp xoay vòng proxy và quản lý phiên
  • Định tuyến request có thể cấu hình - chuyển trực tiếp URL tới handler phù hợp
  • Hàng đợi bền vững cho các URL cần crawl
  • Lưu trữ dạng mô-đun cho cả dữ liệu bảng và tệp
  • Khả năng xử lý lỗi mạnh mẽ

Khác biệt so với Scrapy

  • Crawlee hỗ trợ crawling bằng trình duyệt Headless (Playwright) theo mặc định
  • Giao diện đơn giản và thanh lịch - có thể thiết lập scraper với chưa đến 10 dòng mã
  • Áp dụng type hint đầy đủ
  • Xây dựng trên Asyncio tiêu chuẩn

Ý kiến của GN⁺

  • Crawlee có vẻ là một công cụ mạnh mẽ cho web scraping và crawling. Đặc biệt, việc hỗ trợ sẵn crawling dựa trên trình duyệt Headless là một ưu điểm lớn.
  • Có thể tạo crawler với giao diện đơn giản và ít mã, nên trông khá hiệu quả về năng suất. Ngoài ra, việc tích cực sử dụng type hint giúp cải thiện trải nghiệm phát triển và giảm khả năng phát sinh lỗi.
  • Nếu là dự án cần crawling để trích xuất dữ liệu, Crawlee rất đáng để cân nhắc. Đặc biệt, nếu cần crawl các trang web đòi hỏi render JavaScript thì PlaywrightCrawler có vẻ sẽ hữu ích.
  • Tuy vậy, nếu cần crawling ở quy mô rất lớn hoặc đòi hỏi tính thời gian thực cao, có thể sẽ tốt hơn khi dùng Scrapy hoặc công cụ khác có hỗ trợ crawling phân tán.
  • Cũng nên xem xét đầy đủ các chính sách crawling và vấn đề pháp lý trước khi sử dụng.

2 bình luận

 
yangeok 2024-07-15

Tôi biết là có hỗ trợ Node, không ngờ giờ cả Python cũng được hỗ trợ. Nếu là scraper cần bảo trì lâu dài thì có lẽ phải nghiêm túc cân nhắc dùng framework rồi haha

 
GN⁺ 2024-07-11
Ý kiến trên Hacker News
  • Việc tài liệu hóa các tính năng hiện có là rất quan trọng. Dù nền tảng web scraping có tuyệt vời đến đâu mà chỉ người tạo ra nó hiểu được thì cũng vô ích

    • Ví dụ, rất khó hiểu ý nghĩa của tiered_proxy_urls: list[list[str]] | None = None
    • Ví dụ nên cho thấy cách tìm và tải xuống mọi loại dữ liệu như bảng .csv, .xlsx
    • Chỉ lấy văn bản và tìm URL thì ai cũng làm được
    • Cần các ví dụ parse 1000 mục khác nhau và lấy 3-5 mục thông qua các endpoint khác nhau
    • Chưa rõ đây là framework hay công cụ tự động hóa
    • Không rõ nó có hỗ trợ giao thức opt-out cho web scraping hay không (ví dụ: Robots.txt, HTTP và thẻ nội dung). Điều này đặc biệt quan trọng sau chỉ thị DSM của EU
  • Cảm ơn Apify/Crawlee. Là người dùng Node.js lâu năm, tôi thấy đây là thư viện hoạt động tốt nhất

  • Tôi phát hiện ra Crawlee khi đang tìm stack cho một dự án. Tôi muốn thư viện Python, nhưng cuối cùng đã dùng Crawlee với Typescript và hoàn thành dự án chỉ trong một tuần

    • API tốt hơn rất nhiều so với bất kỳ API scraping Python nào tôi từng dùng
    • Việc tích hợp với Playwright khiến trải nghiệm lập trình rất thuận tiện
    • Nó hoạt động tốt với các website render phía frontend và việc bắt các phản hồi XHR đã bị chỉnh sửa
    • Tôi dự định sẽ mở rộng bằng cách dùng nền tảng Apify
  • Tôi tò mò nó khác Scrapy như thế nào

  • Tôi tự hỏi lý do để chuyển từ thư viện khác sang là gì. Tôi đã tự xây crawler của mình, nhưng chưa thấy điểm gì thật sự độc đáo

  • Mã Python hiện đại trông rất đẹp

    • Trong ví dụ mã, const data = await crawler.get_data() trông giống Javascript. Có vẻ như bị thiếu dấu gạch dưới
  • Tôi đề xuất đưa thêm nhiều đoạn mã từ test case vào làm ví dụ tài liệu. Làm tốt lắm

  • Các công cụ scraping luôn được hoan nghênh. Tôi sẽ thử dùng cho một dự án cá nhân. Nhờ AI mà scraping hiện nay giống như bán xẻng trong thời kỳ đổ xô đi tìm vàng