Chúng ta đã thực hiện xong luồng thứ nhất:
Bước 1. Lấy danh sách
Bước 2. Lấy từng content theo danh sách. Bước 2* là crawl trong Windows.
Với các trang chống bot phức tạp, hay cần đăng nhập thay vì dùng cookies có thể dùng trình duyệt thật trên Windows thay vì dùng Linux.
Bây giờ chúng ta qua luống crawl khác, luồng này mình ưu tiên dùng Windows và dùng proxy. Đây là cách chắc chắn nhất để khi mới tiếp cận, thời gian ít chúng ta có thể vận dụng ngay (Bước 2*).
Đối với các trang không chống bot mạnh, chỉ cần cookies thay cho đăng nhập, hay không cần đăng nhập thì dùng Linux rất đã (Bước 2).
Nguyên tắc của (các) luồng tiếp theo:
- Không ảnh hưởng đến luồng crawl trước đó.
- Tách biệt IP (dùng proxy), Chrome profile nếu như Website nguồn đang crawl trong luồng crawl khác.
- Đảm bảo các nguyên tắc crawl khác trong bài đầu tiên đã đề cập Crawler, Spider, Scraper
Bước 1. Chuẩn bị môi trường mới (env)
Mở CMD
cd D:\DuAn\DuAnMoipy -3 -m venv myenv_DuAn2myenv_DuAn2\Scripts\activatepip install --upgrade pippip install undetected-chromedriver selenium requests pandas
Nếu PowerShell tương tự, kích hoạt: .\myenv_DuAn2\Scripts\Activate.ps1
Nếu dữ liệu tải về của dự án để trên HDD, khuyến cáo để env trên ổ OS (là SSD, NVME) để lâu lâu không bị lag, "khựng" do HDD full load.
Bước 2. Tạo file chạy .bat để cô lập biến môi trường
Ví dụ tạo file run_DuAn2.bat đặt cạnh script:
@echo offSETLOCAL ENABLEEXTENSIONS
REM ---- Kích hoạt venv riêng ----call "%~dp0myenv_DuAn2\Scripts\activate.bat"
REM ---- Biến môi trường CHỈ cho tiến trình này ----set USE_PROXY=1set PROXY_URL=http://[IP máy chủ proxy]:8888set HEADLESS=1
REM Chrome profile & output tách biệtset PROFILE_DIR=%LOCALAPPDATA%\Google\Chrome\User Data DuAn2set PROFILE_NAME=Profile DuAn2set LOG_FILE=4LayFiles_DuAn2_Windows.logset OUTPUT_CSV=4LayFiles_DuAn2_Windows-Output.csvset INPUT_CSV=4LayFiles_DuAn2_Windows-Windows-Input.csvset SAVE_ROOT=4LayFiles_DuAn2_Windows
REM ---- Chạy script ----py 4LayFiles_DuAn2-Windows.py
REM ---- Kết thúc, tự động thu hồi biến khi ENDLOCAL ----ENDLOCAL
SETLOCAL đảm bảo mọi biến chỉ tồn tại trong .bat → không ảnh hưởng terminal/luồng khác.
PROFILE_DIR/PROFILE_NAME đã tách riêng nên Chrome không đụng profile các luồng khác.
SAVE_ROOT/OUTPUT_CSV/LOG_FILE cũng tách, tránh ghi đè.
Chạy: chỉ cần double-click vào file run_DuAn2.bat hoặc chạy từ CMD.
- Đăng nhập để gửi ý kiến