
Emma Foster
Machine Learning Engineer

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!
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.
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:
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.
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ể.
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.
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.
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.
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:
Cài đặt Botright:
pip install botright
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.
pip install webdriver-manager
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.
from botright import Botright
Nếu không có lỗi xảy ra, Botright đã được cài đặt chính xác.
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.
Kịch bản: scrape_quotes.py
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:
python scrape_quotes.py
Kết quả đầu ra:
“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:
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.bot.get().Kịch bản: scrape_quotes_pagination.py
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:
find_elements_by_css_selector để xác định vị trí các yếu tố.Kịch bản: scrape_dynamic_content.py
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:
time.sleep().Kịch bản: scrape_with_login.py
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:
Lưu ý: Vì 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ả.
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-chrome-extension-v0.2.3.zip../capsolver_extension.Xác định vị trí config.json:
capsolver_extension/assets/config.jsonChỉnh sửa config.json:
{
"apiKey": "YOUR_CAPSOLVER_API_KEY",
"enabledForcaptcha": true,
"captchaMode": "token",
"enabledForRecaptchaV2": true,
"reCaptchaV2Mode": "token",
"solveInvisibleRecaptcha": true,
"verbose": false
}
"YOUR_CAPSOLVER_API_KEY" bằng khóa API CapSolver thực tế của bạn.enabledForcaptcha và/hoặc enabledForRecaptchaV2 thành true dựa trên các loại CAPTCHA mà bạn mong đợi."token" để giải quyết tự động.Để 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:
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:
Options:
selenium.webdriver.chrome.options, để đặt các tùy chọn Chrome.options.add_argument() để thêm tiện ích mở rộng CapSolver.options vào Botright khi tạo một thể hiện.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
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:
options khi tạo thể hiện Botright.bot.get() để điều hướng đến trang web có reCAPTCHA.time.sleep() để chờ; điều chỉnh thời gian theo yêu cầu.Lưu ý quan trọng:
extension_path trỏ chính xác đến thư mục tiện ích mở rộng CapSolver của bạn.time.sleep() cho phù hợp.options tùy chỉnh trình điều khiển.Chạy kịch bản:
python scrape_with_capsolver_extension.py
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.

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 ý:
Hãy học cách xác định nguyên nhân gây ra lỗi Cloudflare 1020 Truy cập Bị Từ Chối, cách Tường lửa Ứng dụng Web và phát hiện bot hoạt động, và cách các nhà phát triển giảm thiểu kết quả dương tính giả trong các quy trình tự động hợp lệ.

Học cách sử dụng mẫu CapSolver n8n để theo dõi các trang sản phẩm được bảo vệ bởi AWS WAF, giải quyết các thách thức, trích xuất giá cả, so sánh các thay đổi và kích hoạt cảnh báo tự động.
