CAPSOLVER
Blog
Truy cập web bằng Botright và Python trong năm 2025

Lấy dữ liệu từ web với Botright và Python trong năm 2025

Logo of CapSolver

Emma Foster

Machine Learning Engineer

14-Nov-2024

Bạn có lẽ đang tự hỏi làm sao để giải quyết captcha bằng BotRight, làm sao để sử dụng nó để tạo một trình trích xuất dữ liệu đơn giản hoặc thậm chí là một trình trích xuất dữ liệu nâng cao!
Vâng, đây là hướng dẫn dành cho bạn!

Giới thiệu về Botright

Giới thiệu về BotRight

BotRight là một thư viện Python nâng cao dành cho tự động hóa web, được thiết kế đặc biệt để điều hướng sự phức tạp ngày càng tăng của các hệ thống phát hiện bot trên các trang web. Không giống như các công cụ tự động hóa cơ bản, BotRight vượt xa các tương tác đơn giản bằng cách cung cấp các điều khiển tinh vi giúp cho việc duyệt web tự động trông giống con người hơn. Việc nhấn mạnh vào việc mô phỏng hành vi của con người rất quan trọng để truy cập các trang web thường chặn hoặc giới hạn bot.

Được xây dựng dựa trên Selenium WebDriver, BotRight cung cấp một API cấp cao trừu tượng hóa các tương tác trình duyệt phức tạp thành các lệnh đơn giản, cho phép cả người dùng mới bắt đầu và người dùng nâng cao phát triển các trình trích xuất dữ liệu và kịch bản tự động hóa tinh vi mà không cần phải quản lý các lệnh trình duyệt cấp thấp. Điều này làm cho nó trở thành một lựa chọn tuyệt vời cho các dự án từ thu thập dữ liệu đơn giản đến các nhiệm vụ web nhiều bước phức tạp, đòi hỏi khả năng chống lại các thuật toán phát hiện bot.

Tại sao nên chọn BotRight?

BotRight cung cấp một số tính năng khiến nó nổi bật trong bối cảnh tự động hóa:

  1. Tương tác giống con người: Thiết kế của BotRight tập trung vào việc mô phỏng các hành động của người dùng thực, chẳng hạn như chuyển động chuột mượt mà, các mẫu gõ tự nhiên và độ trễ thời gian. Những hành vi này làm giảm nguy cơ bị phát hiện và cung cấp quyền truy cập đáng tin cậy hơn vào nội dung thường bị giới hạn đối với người dùng thực.

  2. Lưu giữ trạng thái trình duyệt: Bằng cách hỗ trợ hồ sơ trình duyệt, BotRight cho phép bạn duy trì trạng thái phiên trong nhiều lần chạy tự động. Tính năng này đặc biệt hữu ích cho các nhiệm vụ yêu cầu duy trì đăng nhập hoặc nơi cần bảo lưu các cookie và trạng thái bộ nhớ cache cụ thể.

  3. Dễ sử dụng: Mặc dù có khả năng nâng cao, BotRight rất dễ sử dụng. API của nó được cấu trúc để hợp lý hóa các nhiệm vụ tự động hóa phức tạp, loại bỏ nhiều phần lớn chi phí kỹ thuật thường đi kèm với thiết lập Selenium. Người mới bắt đầu có thể bắt đầu nhanh chóng, trong khi các chuyên gia có thể tận dụng sự linh hoạt của BotRight để xây dựng các giải pháp tùy chỉnh cao.

  4. Khả năng mở rộng cho các quy trình làm việc phức tạp: BotRight thích nghi tốt với các nhiệm vụ nâng cao hơn, bao gồm xử lý các trang web được cung cấp năng lượng bởi AJAX, quản lý trích xuất dữ liệu phân trang, giải quyết CAPTCHA và hơn thế nữa. Khi được ghép nối với các giải pháp CAPTCHA như CapSolver, BotRight có thể xử lý các quy trình làm việc yêu cầu bỏ qua CAPTCHA, cho phép bạn tự động hóa ngay cả các trang web được bảo vệ nghiêm ngặt.

  5. Tiện ích mở rộng và plugin tích hợp: BotRight hỗ trợ việc đưa vào các tiện ích mở rộng và plugin khác nhau để nâng cao khả năng tự động hóa. Ví dụ: việc sử dụng các công cụ như CapSolver trong BotRight giúp quản lý các thử thách CAPTCHA, mở khóa một phạm vi rộng hơn các trang web để trích xuất dữ liệu hoặc tự động hóa.


Cài đặt Botright

Trước khi bắt đầu, hãy đảm bảo rằng bạn đã cài đặt Python 3.7 trở lên trên hệ thống của mình. Thực hiện theo các bước sau để cài đặt Botright:

  1. Cài đặt Botright:

    bash Copy
    pip install botright
  2. Cài đặt Trình quản lý WebDriver:

    Botright dựa vào gói webdriver_manager để quản lý trình điều khiển trình duyệt.

    bash Copy
    pip install webdriver-manager
  3. Xác minh cài đặt:

    Tạo một tệp Python mới và nhập Botright để đảm bảo rằng nó đã được cài đặt chính xác.

    python Copy
    from botright import Botright

    Nếu không có lỗi xảy ra, Botright đã được cài đặt chính xác.


Tạo Trình trích xuất dữ liệu cơ bản

Hãy tạo các kịch bản đơn giản để trích xuất dữ liệu từ quotes.toscrape.com bằng Botright.

Trích xuất dữ liệu Quotes

Kịch bản: scrape_quotes.py

python Copy
from botright import Botright

def scrape_quotes():
    with Botright() as bot:
        bot.get("https://quotes.toscrape.com/")
        quotes = bot.find_elements_by_css_selector("div.quote")
        for quote in quotes:
            text = quote.find_element_by_css_selector("span.text").text
            author = quote.find_element_by_css_selector("small.author").text
            print(f"\"{text}\" - {author}")

if __name__ == "__main__":
    scrape_quotes()

Chạy kịch bản:

bash Copy
python scrape_quotes.py

Kết quả đầu ra:

Copy
“The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.” - Albert Einstein
...

Giải thích:

  • Chúng ta sử dụng Botright dưới dạng trình quản lý ngữ cảnh để đảm bảo thiết lập và dỡ bỏ chính xác.
  • Chúng ta điều hướng đến trang web bằng bot.get().
  • Chúng ta tìm tất cả các yếu tố trích dẫn và trích xuất văn bản và tác giả.

Xử lý phân trang

Kịch bản: scrape_quotes_pagination.py

python Copy
from botright import Botright

def scrape_all_quotes():
    with Botright() as bot:
        bot.get("https://quotes.toscrape.com/")
        while True:
            quotes = bot.find_elements_by_css_selector("div.quote")
            for quote in quotes:
                text = quote.find_element_by_css_selector("span.text").text
                author = quote.find_element_by_css_selector("small.author").text
                print(f"\"{text}\" - {author}")

            # Kiểm tra xem có trang tiếp theo hay không
            next_button = bot.find_elements_by_css_selector('li.next > a')
            if next_button:
                next_button[0].click()
            else:
                break

if __name__ == "__main__":
    scrape_all_quotes()

Giải thích:

  • Chúng ta lặp qua các trang bằng cách kiểm tra xem nút "Tiếp theo" có sẵn hay không.
  • Chúng ta sử dụng find_elements_by_css_selector để xác định vị trí các yếu tố.
  • Chúng ta nhấp vào nút "Tiếp theo" để điều hướng đến trang tiếp theo.

Trích xuất dữ liệu nội dung động

Kịch bản: scrape_dynamic_content.py

python Copy
from botright import Botright
import time

def scrape_tags():
    with Botright() as bot:
        bot.get("https://quotes.toscrape.com/")
        # Nhấp vào liên kết 'Top Ten tags' để tải thẻ một cách động
        bot.click('a[href="/tag/"]')
        # Chờ nội dung động được tải
        time.sleep(2)
        tags = bot.find_elements_by_css_selector("span.tag-item > a")
        for tag in tags:
            tag_name = tag.text
            print(f"Tag: {tag_name}")

if __name__ == "__main__":
    scrape_tags()

Giải thích:

  • Chúng ta điều hướng đến trang thẻ bằng cách nhấp vào liên kết.
  • Chúng ta chờ nội dung động được tải bằng time.sleep().
  • Chúng ta trích xuất và in các thẻ.

Gửi biểu mẫu và đăng nhập

Kịch bản: scrape_with_login.py

python Copy
from botright import Botright

def login_and_scrape():
    with Botright() as bot:
        bot.get("https://quotes.toscrape.com/login")
        # Điền vào biểu mẫu đăng nhập
        bot.type('input#username', 'testuser')
        bot.type('input#password', 'testpass')
        bot.click("input[type='submit']")

        # Xác minh đăng nhập bằng cách kiểm tra liên kết đăng xuất
        if bot.find_elements_by_css_selector('a[href="/logout"]'):
            print("Đăng nhập thành công!")

            # Bây giờ hãy trích xuất dữ liệu các trích dẫn
            bot.get("https://quotes.toscrape.com/")
            quotes = bot.find_elements_by_css_selector("div.quote")
            for quote in quotes:
                text = quote.find_element_by_css_selector("span.text").text
                author = quote.find_element_by_css_selector("small.author").text
                print(f"\"{text}\" - {author}")
        else:
            print("Đăng nhập thất bại.")

if __name__ == "__main__":
    login_and_scrape()

Giải thích:

  • Chúng ta điều hướng đến trang đăng nhập và điền vào thông tin xác thực.
  • Chúng ta xác minh đăng nhập bằng cách kiểm tra xem liên kết đăng xuất có tồn tại hay không.
  • Sau đó, chúng ta tiến hành trích xuất nội dung có sẵn cho người dùng đã đăng nhập.

Lưu ý:quotes.toscrape.com cho phép bất kỳ tên người dùng và mật khẩu nào để minh họa, chúng ta có thể sử dụng thông tin xác thực giả.


Tích hợp CapSolver vào Botright

Mặc dù quotes.toscrape.com không có CAPTCHA, nhưng nhiều trang web thực tế lại có. Để chuẩn bị cho những trường hợp như vậy, chúng ta sẽ trình bày cách tích hợp CapSolver vào kịch bản Botright của mình bằng cách sử dụng tiện ích mở rộng trình duyệt CapSolver.

Tải xuống tiện ích mở rộng CapSolver

  1. Tải xuống tiện ích mở rộng:

    • Truy cập trang Phát hành CapSolver GitHub.
    • Tải xuống phiên bản mới nhất, ví dụ: capsolver-chrome-extension-v0.2.3.zip.
    • Giải nén nó vào một thư mục ở gốc dự án của bạn, ví dụ: ./capsolver_extension.

Cấu hình tiện ích mở rộng CapSolver

  1. Xác định vị trí config.json:

    • Đường dẫn: capsolver_extension/assets/config.json
  2. Chỉnh sửa config.json:

    json Copy
    {
      "apiKey": "YOUR_CAPSOLVER_API_KEY",
      "enabledForcaptcha": true,
      "captchaMode": "token",
      "enabledForRecaptchaV2": true,
      "reCaptchaV2Mode": "token",
      "solveInvisibleRecaptcha": true,
      "verbose": false
    }
    • Thay thế "YOUR_CAPSOLVER_API_KEY" bằng khóa API CapSolver thực tế của bạn.
    • Đặt enabledForcaptcha và/hoặc enabledForRecaptchaV2 thành true dựa trên các loại CAPTCHA mà bạn mong đợi.
    • Đặt chế độ thành "token" để giải quyết tự động.

Tải tiện ích mở rộng CapSolver trong Botright

Để sử dụng tiện ích mở rộng CapSolver trong Botright, chúng ta cần cấu hình trình duyệt để tải tiện ích mở rộng khi nó khởi động.

Lưu ý: Botright cho phép bạn tùy chỉnh các tùy chọn trình duyệt, bao gồm cả việc thêm tiện ích mở rộng.

Kịch bản đã sửa đổi:

python Copy
from botright import Botright
from selenium.webdriver.chrome.options import Options
import os

def create_bot_with_capsolver():
    # Đường dẫn đến thư mục tiện ích mở rộng CapSolver
    extension_path = os.path.abspath('capsolver_extension')

    # Cấu hình các tùy chọn Chrome
    options = Options()
    options.add_argument(f"--load-extension={extension_path}")
    options.add_argument("--disable-gpu")
    options.add_argument("--no-sandbox")

    # Khởi tạo Botright với các tùy chọn tùy chỉnh
    bot = Botright(options=options)
    return bot

Giải thích:

  • Nhập Options:
    • Từ selenium.webdriver.chrome.options, để đặt các tùy chọn Chrome.
  • Cấu hình các tùy chọn Chrome:
    • Sử dụng options.add_argument() để thêm tiện ích mở rộng CapSolver.
  • Khởi tạo Botright với các tùy chọn:
    • Truyền options vào Botright khi tạo một thể hiện.

Ví dụ về kịch bản với tích hợp CapSolver

Chúng ta sẽ trình bày việc tích hợp bằng cách điều hướng đến một trang web có reCAPTCHA, chẳng hạn như bản demo reCAPTCHA của Google.

Kịch bản: scrape_with_capsolver_extension.py

python Copy
from botright import Botright
from selenium.webdriver.chrome.options import Options
import os
import time

def solve_captcha_and_scrape():
    # Đường dẫn đến thư mục tiện ích mở rộng CapSolver
    extension_path = os.path.abspath('capsolver_extension')

    # Cấu hình các tùy chọn Chrome
    options = Options()
    options.add_argument(f"--load-extension={extension_path}")
    options.add_argument("--disable-gpu")
    options.add_argument("--no-sandbox")

    # Khởi tạo Botright với các tùy chọn tùy chỉnh
    with Botright(options=options) as bot:
        bot.get("https://www.google.com/recaptcha/api2/demo")

        # Chờ CAPTCHA được giải quyết bởi CapSolver
        print("Đang chờ CAPTCHA được giải quyết...")
        # Điều chỉnh thời gian ngủ dựa trên thời gian giải quyết trung bình
        time.sleep(15)

        # Xác minh xem CAPTCHA đã được giải quyết bằng cách kiểm tra nội dung trang
        if "Verification Success" in bot.page_source:
            print("CAPTCHA đã được giải quyết thành công!")
        else:
            print("CAPTCHA chưa được giải quyết hoặc đã thất bại.")

if __name__ == "__main__":
    solve_captcha_and_scrape()

Giải thích:

  • Thiết lập các tùy chọn Chrome:
    • Bao gồm tiện ích mở rộng CapSolver trong phiên trình duyệt.
  • Khởi tạo Botright với các tùy chọn:
    • Truyền options khi tạo thể hiện Botright.
  • Điều hướng đến trang web mục tiêu:
    • Sử dụng bot.get() để điều hướng đến trang web có reCAPTCHA.
  • Chờ CAPTCHA được giải quyết:
    • Tiện ích mở rộng CapSolver sẽ tự động giải quyết CAPTCHA.
    • Sử dụng time.sleep() để chờ; điều chỉnh thời gian theo yêu cầu.
  • Xác minh giải pháp CAPTCHA:
    • Kiểm tra nội dung trang để xác nhận xem CAPTCHA đã được giải quyết hay chưa.

Lưu ý quan trọng:

  • Đường dẫn tiện ích mở rộng:
    • Đảm bảo extension_path trỏ chính xác đến thư mục tiện ích mở rộng CapSolver của bạn.
  • Thời gian chờ:
    • Thời gian giải quyết có thể thay đổi; điều chỉnh time.sleep() cho phù hợp.
  • Quản lý trình điều khiển:
    • Botright quản lý WebDriver ở bên trong; việc truyền options tùy chỉnh trình điều khiển.
  • Tuân thủ:
    • Hãy đảm bảo rằng bạn tuân thủ các điều khoản dịch vụ của trang web mà bạn đang trích xuất dữ liệu.

Chạy kịch bản:

bash Copy
python scrape_with_capsolver_extension.py

Mã bổ sung

Hãy nhận Mã bổ sung cho các giải pháp captcha hàng đầu tại CapSolver: scrape. Sau khi đổi mã, bạn sẽ nhận được thêm 5% tiền thưởng sau mỗi lần nạp tiền, không giới hạn lần.

Kết luận

Bằng cách tích hợp CapSolver với Botright bằng cách sử dụng tiện ích mở rộng trình duyệt CapSolver, bạn có thể tự động hóa việc giải quyết CAPTCHA trong các dự án trích xuất dữ liệu web của mình. Điều này đảm bảo việc trích xuất dữ liệu không bị gián đoạn, ngay cả từ các trang web được bảo vệ bởi CAPTCHA.

Những điểm chính cần lưu ý:

  • Botright đơn giản hóa việc tự động hóa web với các tương tác giống con người.
  • Tiện ích mở rộng trình duyệt CapSolver có thể được tích hợp vào các kịch bản Botright.
  • Việc cấu hình chính xác tiện ích mở rộng và các tùy chọn trình duyệt là rất quan trọng.

Tuyên bố Tuân thủ: Thông tin được cung cấp trên blog này chỉ mang tính chất tham khảo. CapSolver cam kết tuân thủ tất cả các luật và quy định hiện hành. Việc sử dụng mạng lưới CapSolver cho các hoạt động bất hợp pháp, gian lận hoặc lạm dụng là hoàn toàn bị cấm và sẽ bị điều tra. Các giải pháp giải captcha của chúng tôi nâng cao trải nghiệm người dùng trong khi đảm bảo tuân thủ 100% trong việc giúp giải quyết các khó khăn về captcha trong quá trình thu thập dữ liệu công khai. Chúng tôi khuyến khích việc sử dụng dịch vụ của chúng tôi một cách có trách nhiệm. Để biết thêm thông tin, vui lòng truy cập Điều khoản Dịch vụ và Chính sách Quyền riêng tư.

Thêm

Việc Scrapping Web Có Hợp Pháp Không?  Hướng Dẫn Toàn Diện Năm 2025
Web Scraping Có Hợp Pháp Không? Hướng Dẫn Toàn Diện Năm 2025

Thách thức pháp lý về cạo web năm 2025: Quy định chính, sự tuân thủ và các nghiên cứu điển hình

Logo of CapSolver

Anh Tuan

24-Jan-2025

5 trình giải Captcha hàng đầu cho việc nhận dạng reCAPTCHA năm 2025
5 trình giải Captcha hàng đầu để nhận dạng reCAPTCHA vào năm 2025

Khám phá 5 giải pháp CAPTCHA hàng đầu năm 2025, bao gồm CapSolver hỗ trợ AI để nhận dạng reCAPTCHA nhanh chóng. So sánh tốc độ, giá cả và độ chính xác tại đây

Logo of CapSolver

Anh Tuan

23-Jan-2025

Nhận dạng reCAPTCHA là gì? Hướng dẫn cho người mới bắt đầu
Nhận dạng reCAPTCHA là gì? Hướng dẫn cho người mới bắt đầu

Khó khăn với lưới ảnh reCAPTCHA? Khám phá cách nhận dạng AI của Capsolver giải quyết các thử thách 'Chọn tất cả' ngay lập tức. Tìm hiểu tích hợp API, tiện ích mở rộng trình duyệt và các mẹo chuyên nghiệp để tự động hóa việc giải quyết CAPTCHA với độ chính xác trên 95%

Logo of CapSolver

Ethan Collins

23-Jan-2025

Khóa Trang Web reCAPTCHA là gì và cách tìm nó?
Khóa trang reCAPTCHA là gì và cách tìm nó?

Tìm hiểu cách tìm khóa Site Key của reCAPTCHA bằng tay hoặc bằng các công cụ như Capsolver. Khắc phục các sự cố thường gặp và tự động hóa việc giải quyết CAPTCHA cho nhà phát triển và web scraping.

Logo of CapSolver

Adélia Cruz

23-Jan-2025

Cách vượt qua Cloudflare Challenge khi Scrape Web vào năm 2025
Cách vượt qua thử thách Cloudflare khi thu thập dữ liệu web vào năm 2025

Tìm hiểu cách vượt qua Cloudflare Challenge và Turnstile trong năm 2025 để thu thập dữ liệu web liền mạch. Khám phá tích hợp Capsolver, mẹo về dấu vân tay TLS và các bản sửa lỗi cho các lỗi thường gặp để tránh địa ngục CAPTCHA. Tiết kiệm thời gian và mở rộng quy mô quá trình trích xuất dữ liệu của bạn.

Logo of CapSolver

Emma Foster

23-Jan-2025

Cách giải quyết CAPTCHA ảnh trong trích xuất dữ liệu web: Hướng dẫn hoàn chỉnh năm 2025
Cách giải quyết CAPTCHA ảnh trong Web Scraping: Hướng dẫn đầy đủ năm 2025

Tìm hiểu cách giải quyết CAPTCHA ảnh hiệu quả với CapSolver vào năm 2025

Logo of CapSolver

Anh Tuan

23-Jan-2025