−25%

cho Windows trả theo năm, đến 31/10. Xem các gói

EQVPS
Bắt đầu

VPS cho web scraping: thiết lập, chọn kích cỡ, và các giới hạn trung thực

6 thg 7, 2026 · 5 phút đọc · EQVPS Team

Một scraper trên laptop của bạn ổn cho tới khi bạn đóng nó giữa một lần chạy, IP nhà bạn bị giới hạn tần suất, hoặc bạn muốn cùng job chạy mỗi giờ dù bạn thức hay không. Chuyển nó tới một VPS sửa cả ba: nó ở lại lên 24/7, nó không đốt danh tiếng IP nhà bạn, và cron hoặc một systemd timer chạy nó theo lịch mà không cần bạn. Đây là cách thiết lập điều đó, bạn thực sự cần bao nhiêu máy chủ, và các phần hầu hết các hướng dẫn lặng lẽ bỏ qua.

Vì sao một VPS đánh bại máy của bạn cho việc này

  • 24/7 và theo lịch. Một scraper chạy hàng giờ cần một host luôn bật. Một laptop thì không.
  • IP nhà bạn ở lại sạch. Scraping từ nhà nghĩa là IP dân cư của bạn chịu các giới hạn tần suất và chặn. Làm nó từ một máy chủ và kết nối của riêng bạn ở lại không bị chạm.
  • Ổn định. Không ngủ, không rớt wifi giữa một cuộc thu thập, một kết nối datacenter đều đặn, và một nơi để tích lũy kết quả.

Stack, và mỗi phần cần gì

Hai hạng cân rất khác nhau, và chọn sai gói phí tiền hoặc bỏ đói job:

  • httpx / requests (Python) — cho các API, endpoint JSON, và HTML tĩnh. Cái này nhẹ: tiến trình nằm trong hàng chục megabyte, ràng buộc mạng, không phải CPU. Một Nano $3 (2 vCPU / 1 GB) chạy cái này thoải mái, kể cả với đồng thời qua asyncio.
  • Playwright / Chromium headless — cho các trang render bằng JavaScript nơi bạn cần một trình duyệt thật. Đây là cái nặng. Chromium headless khoảng 300–400 MB mỗi instance trình duyệt, cộng 100–200 MB mỗi context/tab mở, cộng runtime của bạn. Dự trù:
    • Micro $5 (2 vCPU / 2 GB) — một hai browser context tại một thời điểm.
    • Small $8 (4 vCPU / 4 GB) — vài context song song, hoặc các trang nặng hơn.

Quy tắc ngón tay cái: mã của bạn gần như không bao giờ là nút thắt cổ chai — Chromium mới là. Chọn kích cỡ cho trình duyệt, không phải scraper.

Lập lịch: systemd timer thay cron

cron hoạt động, nhưng một systemd timer là mặc định tốt hơn trên một máy chủ bạn bảo trì: log qua journalctl, bắt kịp nếu cỗ máy đã down, và trạng thái theo-từng-lần-chạy kiểm tra được. Một thiết lập tối thiểu:

# /etc/systemd/system/scrape.service
[Unit]
Description=Run scraper
[Service]
Type=oneshot
User=scraper
WorkingDirectory=/home/scraper/job
ExecStart=/home/scraper/job/venv/bin/python scrape.py
# /etc/systemd/system/scrape.timer
[Unit]
Description=Hourly scrape
[Timer]
OnCalendar=hourly
Persistent=true
[Install]
WantedBy=timers.target
sudo systemctl enable --now scrape.timer
journalctl -u scrape.service -f   # xem các lần chạy

Persistent=true là điều cron không thể làm: nếu máy chủ tắt lúc giờ chạy, job bắn một lần lúc boot thay vì lặng lẽ bỏ qua.

Kết quả đi đâu

Giữ nó đơn giản và khớp khối lượng: SQLite cho dữ liệu có cấu trúc bạn sẽ truy vấn (một tập tin, không thiết lập), CSV cho các bản dump dạng bảng nhanh, hoặc một object store tương thích S3 khi kết quả vượt quá cỗ máy hoặc bạn muốn chúng ngoài-máy-chủ. Xoay các log của bạn (logrotate hoặc các giới hạn journald) để một scraper nhiều lời không dần lấp đĩa.

Phần trung thực: IP egress và danh tiếng

Đây là chi tiết quyết định liệu scraper của bạn hoạt động một tuần hay bị chặn ngày đầu.

Trên một gói NAT, địa chỉ đi ra không phải của riêng bạn. Danh tiếng của nó cũng không phải của bạn — lưu lượng của người khác từ cùng địa chỉ tới cùng mục tiêu có thể khiến địa chỉ bị giới hạn tần suất trước khi bạn gửi một yêu cầu. Ổn cho scraping nhẹ, thỉnh thoảng; một trách nhiệm ở quy mô.

Một IP riêng cho bạn danh tiếng egress của riêng bạn — không hành vi của ai khác ảnh hưởng nó. Nhưng nó cắt cả hai chiều: scraping hung hãn đốt IP sạch của chính bạn, và một khi một mục tiêu chặn nó, nó bị chặn. Một IP riêng là kiểm soát, không phải miễn dịch.

Ở quy mô thật, bạn cần các hồ proxy bên ngoài. Không IP đơn nào — NAT hay riêng — có thể trải tải qua nhiều địa chỉ, vốn là cái scraping nghiêm túc chống lại các mục tiêu giới hạn-tần-suất-theo-IP đòi hỏi. Proxy là một lớp chung, bên thứ ba bạn thêm lên trên; VPS chạy scraper, hồ proxy cung cấp các địa chỉ. Đừng trông đợi một IP máy chủ làm việc của một hồ proxy.

Đạo đức và AUP — không phải tùy chọn

Scraping sống trong một vùng xám pháp lý và đạo đức, nên hãy nhìn rõ:

  • Tôn trọng các giới hạn tần suất và robots.txt. Điều tiết các yêu cầu của bạn. Một scraper lịch sự trông như lưu lượng; một cái bất lịch sự trông như một cuộc tấn công.
  • Đừng DoS mục tiêu của bạn. Đập một trang cho tới khi nó ngã không phải scraping, nó là một từ-chối-dịch-vụ — và nó là một vi phạm sử dụng hợp lý ở đây khiến dịch vụ bị chấm dứt.
  • Chỉ scrape cái bạn được phép. Thu thập dữ liệu hợp pháp, được phép là ranh giới. Vượt nó và nó do bạn.

Kết luận

Một VPS là ngôi nhà đúng cho một scraper: luôn-bật, theo lịch, và ngoài IP nhà bạn. Khớp gói với stack — Nano $3 cho httpx, Micro $5 đến Small $8 cho Playwright — lập lịch với một systemd timer, và trung thực về các IP: địa chỉ egress NAT không phải của bạn, danh tiếng của nó cũng vậy, một IP riêng là của bạn để xây hoặc đốt, và quy mô thật nghĩa là các hồ proxy. Khóa cỗ máy lại trước với danh sách kiểm tra bảo mật VPS-mới, chọn kích cỡ đúng dùng hướng dẫn chọn kích cỡ VPS, và nếu quyền riêng tư thanh-toán-không-thẻ quan trọng, phân tích VPS ẩn danh là phiên bản trung thực. Scrape có trách nhiệm — AUP là thật.


Sẵn sàng scrape? Một gói Micro là một khởi đầu vững; các cuộc thu thập đồng thời lớn tốt hơn trên Small.

FAQ

Tôi cần thông số VPS gì cho web scraping?

Tùy stack. Một scraper HTTP thuần (httpx/requests gọi các API hoặc HTML tĩnh) nhẹ — một Nano $3 với 1 GB là dư dả. Khoảnh khắc bạn cần một trình duyệt thật cho các trang nặng JavaScript, Playwright với Chromium headless muốn 2–4 GB: một Micro $5 cho một hai browser context, một Small $8 nếu bạn chạy vài cái song song. Chromium là kẻ ngốn RAM, không phải mã của bạn.

Tôi có thể scrape từ IP của chính máy chủ, hay cần proxy?

Cho scraping khối lượng thấp, cư xử tốt của các trang cho phép nó, IP của máy chủ là ổn. Ở quy mô, hoặc chống lại các trang giới hạn tần suất theo IP, bạn sẽ cần một hồ proxy bên ngoài — một IP (NAT hay riêng) không thể trải tải, và đập từ một địa chỉ đơn khiến nó bị chặn nhanh. Một IP riêng cho bạn một danh tiếng sạch bạn kiểm soát; proxy cho bạn nhiều.

cron hay systemd timer cho các cuộc scrape theo lịch?

Một systemd timer, trong gần như mọi trường hợp. Khác cron nó cho bạn ghi log đúng qua journalctl, thứ tự phụ thuộc, tự bắt kịp nếu cỗ máy đã down, và trạng thái theo-từng-lần-chạy bạn có thể kiểm tra. cron vẫn hoạt động cho các job cực đơn giản, nhưng một timer là mặc định tốt hơn trên một máy chủ bạn thực sự bảo trì.

Web scraping có được phép trên VPS không?

Scraping hợp pháp, tôn trọng — có. Scraping hung hãn bỏ qua các giới hạn tần suất hoặc robots.txt, hoặc dẫn tới đập một mục tiêu tới mức từ chối dịch vụ, là một vi phạm sử dụng hợp lý và khiến dịch vụ bị chấm dứt. Scrape cái bạn được phép, tự điều tiết, và đừng biến một scraper thành một cuộc tấn công.

Bình luận

Chưa có bình luận nào. Hãy là người đầu tiên.

Để lại bình luận

Bình luận được kiểm duyệt trước khi hiển thị.