🥳Tham gia Cộng đồng Scrapelessnhận thử nghiệm miễn phí của bạn để truy cập Bộ công cụ Web Scraping mạnh mẽ của chúng tôi!
Quay lại blog

Cách mở khóa trang web khi scrape với Scrapeless Web Unlocker?

Alex Johnson
Alex Johnson

Senior Web Scraping Engineer

08-Feb-2025

Web scraping hiện nay được sử dụng rộng rãi cho phân tích dữ liệu và nghiên cứu thị trường, và tất nhiên, cả phân tích đối thủ cạnh tranh. Tuy nhiên, chúng ta sẽ không thể tránh khỏi việc gặp phải một số trở ngại khi thu thập dữ liệu, chẳng hạn như bị chặn IP, việc render JavaScript phức tạp và xác thực CAPTCHA. Một mối quan tâm chính mà người dùng thường đặt ra là: Việc scraping website có hợp pháp không?

Làm thế nào để tránh bị phát hiện và chặn khi thực hiện công việc tự động?

Bài viết này sẽ chỉ cho bạn những phương pháp hiệu quả và tiết kiệm thời gian nhất.

Bắt đầu đọc ngay!

Tại sao tôi cứ bị chặn khi scraping website?

Trước khi chúng ta tìm hiểu các mẹo web scraping, trước tiên, bạn cần biết các biện pháp chống bot phổ biến mà bạn có thể gặp phải khi thu thập dữ liệu web.

Nếu bạn luôn gặp phải việc bị chặn mạng, hãy kiểm tra 8 khía cạnh sau:

1️⃣ Yêu cầu quá mức từ cùng một IP
Các website giám sát các mô hình lưu lượng truy cập và có thể chặn các địa chỉ IP thực hiện quá nhiều yêu cầu trong một thời gian ngắn. Điều này thường được thực hiện để ngăn chặn việc scraping và lạm dụng.

2️⃣ Danh sách đen IP
Nếu hoạt động scraping của bạn bị gắn cờ là đáng ngờ, website có thể đưa IP của bạn vào danh sách đen. Điều này có thể xảy ra nếu bạn liên tục truy cập trang web từ cùng một địa chỉ IP hoặc sử dụng các mô hình hành vi dễ nhận biết giống như một bot.

3️⃣ Sử dụng Captcha
Nhiều website sử dụng các thử thách CAPTCHA để phân biệt giữa người dùng và bot. Nếu scraper của bạn kích hoạt một thử thách CAPTCHA, nó có thể bị chặn cho đến khi CAPTCHA được giải quyết.

4️⃣ Render JavaScript
Các website có JavaScript phức tạp có thể ẩn hoặc tự động tạo nội dung. Các phương pháp scraping truyền thống gặp khó khăn với điều này, dẫn đến việc scraping không đầy đủ hoặc thất bại.

Đây là lý do cơ bản nhất tại sao các website chặn scraper của bạn. Làm thế nào để khắc phục thách thức Render JS? Đừng lo lắng. Chúng ta có thể giải quyết nó sau.

5️⃣ Phát hiện User-Agent
Các website thường kiểm tra chuỗi "User-Agent" để xem yêu cầu đến từ trình duyệt thực sự hay một bot. Các công cụ scraping không mô phỏng chính xác một trình duyệt thực sự có thể bị phát hiện và chặn.

6️⃣ Giới hạn tốc độ và hết hạn phiên
Các website có thể giới hạn số lượng yêu cầu bạn có thể thực hiện trong một khoảng thời gian nhất định, và phiên của bạn có thể hết hạn sau một số hành động nhất định. Liên tục truy cập website có thể dẫn đến việc bị chặn tạm thời hoặc vĩnh viễn.

7️⃣ Dấu vân tay
Các website hiện đại sử dụng các kỹ thuật dấu vân tay trình duyệt để phát hiện việc scraping tự động. Phương pháp này theo dõi các mẫu duy nhất như độ phân giải màn hình, múi giờ và các đặc điểm trình duyệt khác, giúp các website dễ dàng xác định và chặn các công cụ scraping.

8️⃣ Chặn địa lý
Một số website hạn chế quyền truy cập dựa trên vị trí địa lý của địa chỉ IP. Nếu bạn đang scraping từ một khu vực không được phép truy cập, bạn có thể gặp phải việc bị chặn.

Scrapeless Web Unlocker - Giải pháp tốt nhất cho việc Scraping Website

Scrapeless không chỉ là một công cụ mở khóa website hàng đầu mà còn là một giải pháp web scraping toàn diện.

Là một công cụ mở khóa web mạnh mẽ, Scrapeless cung cấp cho người dùng các dịch vụ trích xuất HTML đơn giản và hiệu quả. Với công nghệ lựa chọn proxy tiên tiến và cơ chế mở khóa tự động, Scrapeless có thể dễ dàng bỏ qua bảo vệ chống crawler phức tạp và giúp người dùng nhanh chóng thu được dữ liệu cần thiết.

Tại sao chúng ta nên chọn Scrapeless Web Unlocker?

⚙️ Render JavaScript hiệu quả (JSRender)

Công nghệ JSRender của Scrapeless sử dụng một công cụ render mô phỏng trình duyệt tiên tiến có thể xử lý việc tải nội dung động trong các trang web theo thời gian thực. Nó đặc biệt phù hợp với các website hiện đại yêu cầu JavaScript để tạo nội dung, chẳng hạn như các trang động, ứng dụng trang đơn (SPA), v.v.

So với các công cụ crawler truyền thống, JSRender của Scrapeless có thể render dữ liệu phức tạp được tạo bởi JavaScript trong thời gian ngắn, điều này rất quan trọng để thu thập nội dung yêu cầu tương tác hoặc cập nhật động (chẳng hạn như trang chi tiết sản phẩm trên các website thương mại điện tử). Ví dụ: khi scraping trang sản phẩm từ Shopee, Amazon và Lazada, Scrapeless có thể tải và trích xuất tất cả dữ liệu động (chẳng hạn như giá cả, hàng tồn kho, đánh giá, v.v.) mà không bỏ sót bất kỳ thông tin quan trọng nào.

🧩 Bỏ qua lệnh cấm IP
Scrapeless cung cấp một nhóm proxy thông minh tích hợp có thể tự động chuyển đổi IP để đảm bảo trải nghiệm truy cập ổn định. Nhóm proxy thông minh lựa chọn các nguồn IP chất lượng cao, do đó, ngay cả trong việc thu thập dữ liệu quy mô lớn, nó vẫn có thể hiệu quả bỏ qua việc chặn và hạn chế IP của website, đảm bảo nhiệm vụ thu thập dữ liệu tiến hành suôn sẻ.

Người dùng không cần phải thực hiện bất kỳ cấu hình bổ sung nào. Chúng tôi đảm bảo mức độ tự động hóa cao nhất, tiết kiệm rất nhiều thời gian và công sức phát triển. Người dùng có thể tập trung vào logic kinh doanh mà không cần lo lắng về việc bị chặn IP.

⚔️ Bộ giải quyết CAPTCHA tự động
Scrapeless có tính năng giải quyết CAPTCHA tích hợp có khả năng xử lý CAPTCHA hình ảnh, CAPTCHA văn bản và các thử thách Google reCAPTCHA. Điều này đảm bảo các phiên scraping không bị gián đoạn mà không cần can thiệp thủ công.

Đối với những người đang thắc mắc, việc scraping website có hợp pháp không? — câu trả lời phụ thuộc vào điều khoản dịch vụ của website và bản chất của việc thu thập dữ liệu. Trong khi thông tin công khai thường được coi là hợp lệ, các cân nhắc về đạo đức và pháp lý luôn cần được tính đến khi thực hiện web scraping.

Scrapeless đơn giản hóa quy trình bằng cách tự động hóa các cơ chế bỏ qua, cho phép các doanh nghiệp và nhà phát triển tập trung vào việc trích xuất thông tin có giá trị một cách hiệu quả.

Cách sử dụng Scrapeless Web Unlocker?

  • Bước 1. Đăng nhập vào Scrapeless.
  • Bước 2. Nhập "Web Unlocker".
Web Unlocker
  • Bước 3. Cấu hình bảng điều khiển ở bên trái theo nhu cầu của bạn:
Cấu hình hoạt động
  • Bước 4. Sau khi điền vào URL mục tiêu của bạn, Scrapeless sẽ tự động thu thập nội dung cho bạn. Bạn có thể xem kết quả thu thập dữ liệu trong hộp hiển thị kết quả ở bên phải. Vui lòng chọn ngôn ngữ bạn cần: Python, Golang hoặc node.js, và cuối cùng nhấp vào logo ở góc trên bên phải để sao chép kết quả.
Chọn ngôn ngữ

Điều này đảm bảo rằng bạn có thể truy cập bất kỳ website công khai nào mà không bị gián đoạn. Nó hỗ trợ nhiều phương pháp thu thập dữ liệu, xuất sắc trong việc render JavaScript và triển khai công nghệ chống thu thập dữ liệu để cung cấp cho bạn các công cụ để duyệt web hiệu quả.

Hoặc bạn có thể sử dụng mã mẫu của chúng tôi bên dưới để tích hợp vào dự án của riêng bạn một cách hiệu quả:

  • Url: Website mục tiêu
  • Method: Phương thức yêu cầu
  • Redirect: Cho phép chuyển hướng hay không
  • Headers: Các trường tiêu đề yêu cầu tùy chỉnh

Python:

Python Copy
import requests
import json

url = "https://api.scrapeless.com/api/v1/unlocker/request"

payload = json.dumps({
   "actor": "unlocker.webunlocker",
   "input": {
      "url": "https://httpbin.io/get",
      "proxy_country": "US",
      "type": "",
      "redirect": False,
      "method": "GET",
      "request_id": "",
      "extractor": ""
   }
})
headers = {
   'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

JavaScript:

JavaScript Copy
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
   "actor": "unlocker.webunlocker",
   "input": {
      "url": "https://httpbin.io/get",
      "proxy_country": "US",
      "type": "",
      "redirect": false,
      "method": "GET",
      "request_id": "",
      "extractor": ""
   }
});

var requestOptions = {
   method: 'POST',
   headers: myHeaders,
   body: raw,
   redirect: 'follow'
};

fetch("https://api.scrapeless.com/api/v1/unlocker/request", requestOptions)
   .then(response => response.text())
   .then(result => console.log(result))
   .catch(error => console.log('error', error));

Go

Go Copy
package main

import (
   "fmt"
   "strings"
   "net/http"
   "io/ioutil"
)

func main() {

   url := "https://api.scrapeless.com/api/v1/unlocker/request"
   method := "POST"

   payload := strings.NewReader(`{
    "actor": "unlocker.webunlocker",
    "input": {
        "url": "https://httpbin.io/get",
        "proxy_country": "US",
        "type": "",
        "redirect": false,
        "method": "GET",
        "request_id": "",
        "extractor": ""
    }
}`)

   client := &http.Client {
   }
   req, err := http.NewRequest(method, url, payload)

   if err != nil {
      fmt.Println(err)
      return
   }
   req.Header.Add("Content-Type", "application/json")

   res, err := client.Do(req)
   if err != nil {
      fmt.Println(err)
      return
   }
   defer res.Body.Close()

   body, err := ioutil.ReadAll(res.Body)
   if err != nil {
      fmt.Println(err)
      return
   }
   fmt.Println(string(body))
}

Các giải pháp thay thế mà không bị chặn

1. Xoay vòng IP

Cách đầu tiên mà một website phát hiện ra trình thu thập dữ liệu web là bằng cách kiểm tra địa chỉ IP của nó và theo dõi tương tác của nó với website. Nếu máy chủ nhìn thấy một mô hình hành vi lạ từ "người dùng đó" hoặc tần suất yêu cầu không thể xảy ra, máy chủ có thể chặn địa chỉ IP đó truy cập website một lần nữa.

Để tránh gửi tất cả các yêu cầu thông qua cùng một địa chỉ IP, bạn có thể sử dụng dịch vụ xoay vòng IP (như proxy dân cư luân phiên của Scrapeless) để định tuyến các yêu cầu của bạn thông qua một nhóm proxy, che giấu địa chỉ IP thực của bạn trong khi thu thập dữ liệu website. Điều này sẽ cho phép bạn thu thập dữ liệu hầu hết các website mà không bị chặn.

Tại sao sử dụng proxy dân cư? Bởi vì trên một số website có yêu cầu chặn nghiêm ngặt hơn, chúng sẽ nghiêm ngặt hơn về việc phát hiện proxy của bạn. Việc chọn proxy dân cư sẽ làm cho danh tính của trình thu thập dữ liệu của bạn trở nên thực tế hơn, làm cho nỗ lực scraping website của bạn ổn định hơn.

Cuối cùng, bằng cách sử dụng xoay vòng IP, trình thu thập dữ liệu của bạn có thể làm cho các yêu cầu xuất hiện như đến từ các người dùng khác nhau và bắt chước hành vi bình thường của lưu lượng truy cập trực tuyến.

Khi sử dụng Scrapeless Proxies, hệ thống xoay vòng IP thông minh của chúng tôi sẽ tận dụng nhiều năm phân tích thống kê và máy học để xoay vòng proxy của bạn khi cần từ nhóm proxy trung tâm dữ liệu, dân cư và di động để đảm bảo tỷ lệ thành công 99,99%.

Nhận proxy luân phiên đặc biệt MIỄN PHÍ ngay bây giờ!

2. Sử dụng trình duyệt không có đầu

Các website khó scraping nhất có thể phát hiện các dấu hiệu tinh vi như phông chữ web, tiện ích mở rộng, cookie trình duyệt và việc thực thi JavaScript để xác định xem yêu cầu đến từ người dùng thực hay không.

Để scraping các website này, bạn có thể cần triển khai trình duyệt không có đầu của riêng mình (hoặc để Trình duyệt Scrapeless Scraping làm điều đó cho bạn!).

Trình duyệt không có đầu cho phép bạn viết một chương trình để điều khiển một trình duyệt web thực giống hệt với trình duyệt được sử dụng bởi người dùng thực để hoàn toàn tránh bị phát hiện.

3. Nhà cung cấp bộ giải quyết CAPTCHA

Bộ giải quyết CAPTCHA là các dịch vụ của bên thứ ba mà chúng ta thường sử dụng. Chúng hoạt động bằng cách sử dụng các công nghệ như Nhận dạng ký tự quang học (OCR), máy học hoặc người giải quyết của bên thứ ba để tự động giải quyết các thử thách CAPTCHA miễn phí, cho phép bot scraping bỏ qua các khối web.

Các công cụ này cho phép các hoạt động scraping website tự động, liên tục bằng cách ngăn chặn sự gián đoạn do xác thực CAPTCHA gây ra. Bằng cách bắt chước hành vi giống như con người hoặc giải quyết CAPTCHA theo thời gian thực, chúng giúp tránh bị phát hiện là bot và duy trì quá trình scraping suôn sẻ.

Tuy nhiên, điều quan trọng là phải xem xét các tác động về đạo đức và pháp lý của việc sử dụng các công cụ như vậy, vì chúng có thể vi phạm các điều khoản dịch vụ và chính sách bảo mật của website. Việc scraping website có hợp pháp không? Điều đó phụ thuộc vào phạm vi pháp lý và các điều khoản của website. Luôn đảm bảo tuân thủ các luật và quy định địa phương. Bên cạnh đó, các công cụ này thường có giá cao hơn.

4. Đặt User-agent thực

Đặt User-Agent thực là một phương pháp phổ biến để tránh bị phát hiện trong quá trình scraping website. Các website thường sử dụng tiêu đề User-Agent trong các yêu cầu để xác định xem chúng đến từ trình duyệt của người dùng thực hay một bot tự động. Bằng cách giả mạo hoặc làm ngẫu nhiên User-Agent, các script scraping có thể xuất hiện như thể chúng đến từ một người dùng thông thường, giảm khả năng bị phát hiện.

Cách triển khai:

  • Giả mạo User-Agent của trình duyệt thực

Sử dụng các chuỗi User-Agent trình duyệt phổ biến (như Chrome, Firefox, Safari, v.v.) để bắt chước hành vi của người dùng thực. Ví dụ: trong Python, bạn có thể đặt tiêu đề User-Agent trình duyệt điển hình bằng thư viện requests:

Python Copy
import requests
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = requests.get('https://example.com', headers=headers)
  • Xoay vòng User-Agent một cách năng động

Xoay vòng các chuỗi User-Agent khác nhau để tránh bị phát hiện bằng cách sử dụng nhóm proxy hoặc API (chẳng hạn như random-user-agent). Điều này làm cho các website khó hơn để nhận ra các mô hình scraping dựa trên một User-Agent duy nhất.

5. Kết hợp các tiêu đề khác

Bên cạnh User-Agent, bạn cũng có thể giả mạo các tiêu đề khác (như Referer, Accept-Language, v.v.) để bắt chước thêm yêu cầu của trình duyệt thực.

Nhìn chung, tốt nhất là làm cho nó trông giống như đang được truy cập từ Google.

Bạn có thể làm điều này với tiêu đề: "Referer": "https://www.google.com/"

Điều này có thể làm cho các website khó hơn để phân biệt giữa các yêu cầu tự động và tương tác người dùng thực sự.

6. Đặt khoảng thời gian ngẫu nhiên giữa các yêu cầu thu thập dữ liệu

Các website thường phát hiện hoạt động scraping dựa trên tần suất và tính thường xuyên của các yêu cầu. Nếu các yêu cầu đến quá nhanh hoặc theo một mô hình có thể dự đoán được, thì việc các website xác định và chặn trình scraping sẽ dễ dàng hơn. Bằng cách đưa vào độ trễ ngẫu nhiên giữa các yêu cầu, bạn có thể làm cho hành vi scraping của mình trông tự nhiên hơn.

Bạn có thể sử dụng hàm time.sleep() trong Python để đưa vào độ trễ giữa các yêu cầu. Bằng cách đặt khoảng thời gian ngẫu nhiên, bạn có thể thay đổi thời gian giữa mỗi yêu cầu để làm cho hành vi ít có thể dự đoán hơn.

Python Copy
import time
import random
import requests

# Gửi một yêu cầu với độ trễ ngẫu nhiên từ 1 đến 3 giây
headers = {'User-Agent': 'Mozilla/5.0'}
url = 'https://example.com'

for i in range(10):
    response = requests.get(url, headers=headers)
    print(f"Request {i+1} Status: {response.status_code}")
    time.sleep(random.uniform(1, 3))  # Độ trễ ngẫu nhiên từ 1 đến 3 giây

7. Tránh bẫy Honeypot

Nhiều website sử dụng các liên kết vô hình để phát hiện trình thu thập dữ liệu web, vì chỉ bot mới theo dõi chúng.

Để tránh bị phát hiện, bạn nên kiểm tra xem một liên kết có thuộc tính CSS "display: none" hoặc "visibility: hidden." hay không. Nếu một trong hai được đặt, không truy cập liên kết đó! Không làm như vậy có thể khiến trình thu thập dữ liệu của bạn bị phát hiện, cho phép máy chủ xác định các thuộc tính yêu cầu của bạn và chặn bạn.

Honeypots là một phương pháp phổ biến được các website sử dụng để phát hiện trình thu thập dữ liệu, vì vậy hãy chắc chắn thực hiện kiểm tra này trên mọi trang bạn scraping.

Hơn nữa, một số quản trị viên web nâng cao cũng có thể đặt màu liên kết thành màu trắng (hoặc khớp với màu nền), vì vậy nên kiểm tra các thuộc tính như "color: #fff;" hoặc "color: #ffffff" để đảm bảo liên kết vẫn vô hình.

8. Xóa bộ nhớ cache của Google

Để tránh bị chặn trong khi scraping, điều quan trọng là phải xóa hoặc bỏ qua bộ nhớ cache của Google, vì nó có thể lưu trữ các tương tác trước đó của bạn và giúp các website phát hiện hoạt động scraping đáng ngờ. Dưới đây là một vài chiến lược để xử lý bộ nhớ cache của Google:

Puppeteer: Sử dụng các hàm clearBrowserCookies()clearBrowserCache() trong Puppeteer để xóa:

JavaScript Copy
cookie và bộ nhớ cache giữa các phiên scraping.
const browser = await puppeteer.launch();
const page = await browser.newPage();

// Xóa bộ nhớ cache và cookie
await page.clearBrowserCache();
await page.clearBrowserCookies();

Đã đến lúc làm cho việc thu thập dữ liệu trở nên đơn giản và hiệu quả!

Scrapeless Web Unlocker là một công cụ mạnh mẽ tích hợp nhóm proxy thông minh, render JavaScript hiệu quả (JSRender) và xử lý CAPTCHA tự động, được thiết kế để giải quyết các vấn đề phổ biến trong việc scraping website. Scrapeless làm cho các nhiệm vụ scraping phức tạp trở nên đơn giản, hiệu quả và đáng tin cậy.

Nếu bạn muốn phá vỡ những giới hạn của việc scraping và cải thiện hiệu quả, cho dù đó là xử lý các trang động phức tạp hay các nhiệm vụ scraping quy mô lớn, Scrapeless Web Unlocker là giải pháp đáng tin cậy của bạn.

Bắt đầu sử dụng Scrapeless miễn phí ngay bây giờ để trải nghiệm hiệu suất scraping vượt trội và làm cho việc thu thập dữ liệu của bạn dễ dàng hơn!

Tại Scrapless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách bảo mật trang web hiện hành. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động cạo nào, hãy tham khảo ý kiến ​​cố vấn pháp lý của bạn và xem xét các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.

Bài viết phổ biến nhất

Danh mục