
Rajinder Singh
Deep Learning Researcher

您可能想知道如何使用 BotRight 解决验证码,如何使用它来制作一个简单的爬虫,甚至更好的,一个高级爬虫!
好吧,那么这就是您的教程!
BotRight 是一个用于网页自动化的 Python 库,专门设计用于应对网站上日益复杂的机器人检测系统。与基本的自动化工具不同,BotRight 不仅限于简单的交互,它提供细致的控制,使自动浏览看起来高度人性化。这种对人类行为模拟的强调对于访问通常会阻止或限制机器人的网站至关重要。
BotRight 建立在 Selenium WebDriver 之上,提供一个高级 API,将复杂的浏览器交互抽象成简单的命令,使初学者和高级用户都能开发出复杂的爬虫和自动化脚本,而无需管理低级浏览器命令。这使得它成为从简单数据收集到需要抵抗机器人检测算法的复杂多步骤网页任务的各种项目的绝佳选择。
BotRight 提供了几个使其在自动化领域中脱颖而出的功能:
人性化的交互: BotRight 的设计以模拟真实用户行为为中心,例如平滑的鼠标移动、自然的打字模式和时间延迟。这些行为降低了检测风险,并提供了更可靠的访问通常仅限于真实用户的內容。
浏览器状态持久性: 通过支持浏览器配置文件,BotRight 允许您在多个自动化运行中维护会话状态。此功能对于需要登录持久性的任务或必须保留特定 Cookie 和缓存状态的任务尤其有用。
易于使用: 尽管功能强大,但 BotRight 的易用性令人惊讶。它的 API 结构简化了复杂的自动化任务,消除了与 Selenium 设置通常相关的许多技术开销。初学者可以快速上手,而专家则可以利用 BotRight 的灵活性构建高度定制的解决方案。
复杂工作流的可扩展性: BotRight 很好地适应了更高级的任务,包括处理 AJAX 驱动的站点、管理分页数据提取、解决验证码等等。与 CapSolver 等验证码求解器配对,BotRight 可以处理需要绕过验证码的工作流,让您即使面对高度防护的网站也能进行自动化。
集成的扩展和插件: BotRight 支持包含各种扩展和插件来增强自动化功能。例如,在 BotRight 中使用 CapSolver 等工具可以帮助管理验证码挑战,为抓取或自动化解锁更多网站。
在开始之前,请确保您的系统上已安装 Python 3.7 或更高版本。按照以下步骤设置 Botright:
安装 Botright:
pip install botright
安装 WebDriver Manager:
Botright 依赖于 webdriver_manager 包来管理浏览器驱动程序。
pip install webdriver-manager
验证安装:
创建一个新的 Python 文件并导入 Botright 以确保它已正确安装。
from botright import Botright
如果没有任何错误,则 Botright 已正确安装。
让我们使用 Botright 创建简单的脚本从 quotes.toscrape.com 抓取数据。
脚本: 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()
运行脚本:
python scrape_quotes.py
输出:
“The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.” - Albert Einstein
...
解释:
Botright 作为上下文管理器,确保正确设置和拆卸。bot.get() 导航到网站。脚本: 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}")
# 检查是否还有下一页
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()
解释:
find_elements_by_css_selector 定位元素。脚本: scrape_dynamic_content.py
from botright import Botright
import time
def scrape_tags():
with Botright() as bot:
bot.get("https://quotes.toscrape.com/")
# 点击 "Top Ten tags" 链接以动态加载标签
bot.click('a[href="/tag/"]')
# 等待动态内容加载
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()
解释:
time.sleep() 等待动态内容加载。脚本: scrape_with_login.py
from botright import Botright
def login_and_scrape():
with Botright() as bot:
bot.get("https://quotes.toscrape.com/login")
# 填写登录表单
bot.type('input#username', 'testuser')
bot.type('input#password', 'testpass')
bot.click("input[type='submit']")
# 通过检查注销链接来验证登录
if bot.find_elements_by_css_selector('a[href="/logout"]'):
print("Logged in successfully!")
# 现在抓取引文
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("Login failed.")
if __name__ == "__main__":
login_and_scrape()
解释:
**注意:**由于 quotes.toscrape.com 允许任何用户名和密码进行演示,因此我们可以使用虚拟凭据。
虽然 quotes.toscrape.com 没有验证码,但许多现实世界中的网站都有。为了应对这种情况,我们将演示如何使用 CapSolver 浏览器扩展 将 CapSolver 集成到我们的 Botright 脚本中。
下载扩展:
capsolver-chrome-extension-v0.2.3.zip。./capsolver_extension。定位 config.json:
capsolver_extension/assets/config.json编辑 config.json:
{
"apiKey": "YOUR_CAPSOLVER_API_KEY",
"enabledForcaptcha": true,
"captchaMode": "token",
"enabledForRecaptchaV2": true,
"reCaptchaV2Mode": "token",
"solveInvisibleRecaptcha": true,
"verbose": false
}
"YOUR_CAPSOLVER_API_KEY" 替换为您的实际 CapSolver API 密钥。enabledForcaptcha 和/或 enabledForRecaptchaV2 设置为 true。"token" 以自动解决。要在 Botright 中使用 CapSolver 扩展,我们需要配置浏览器以在启动时加载扩展。
**注意:**Botright 允许您自定义浏览器选项,包括添加扩展。
修改后的脚本:
from botright import Botright
from selenium.webdriver.chrome.options import Options
import os
def create_bot_with_capsolver():
# CapSolver 扩展文件夹的路径
extension_path = os.path.abspath('capsolver_extension')
# 配置 Chrome 选项
options = Options()
options.add_argument(f"--load-extension={extension_path}")
options.add_argument("--disable-gpu")
options.add_argument("--no-sandbox")
# 使用自定义选项初始化 Botright
bot = Botright(options=options)
return bot
解释:
Options:
selenium.webdriver.chrome.options 导入,以设置 Chrome 选项。options.add_argument() 添加 CapSolver 扩展。options 传递给 Botright。我们将通过导航到一个具有 reCAPTCHA 的网站(例如 Google 的 reCAPTCHA 演示)来演示集成。
脚本: 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():
# CapSolver 扩展文件夹的路径
extension_path = os.path.abspath('capsolver_extension')
# 配置 Chrome 选项
options = Options()
options.add_argument(f"--load-extension={extension_path}")
options.add_argument("--disable-gpu")
options.add_argument("--no-sandbox")
# 使用自定义选项初始化 Botright
with Botright(options=options) as bot:
bot.get("https://www.google.com/recaptcha/api2/demo")
# 等待 CapSolver 解决验证码
print("Waiting for CAPTCHA to be solved...")
# 根据平均解决时间调整睡眠时间
time.sleep(15)
# 通过检查页面内容来验证验证码是否已解决
if "Verification Success" in bot.page_source:
print("CAPTCHA solved successfully!")
else:
print("CAPTCHA not solved yet or failed.")
if __name__ == "__main__":
solve_captcha_and_scrape()
解释:
Botright 实例时传递 options。bot.get() 导航到具有 reCAPTCHA 的站点。time.sleep() 等待;根据需要调整时间。重要注意事项:
extension_path 正确指向您的 CapSolver 扩展文件夹。time.sleep()。options 可以自定义驱动程序。运行脚本:
python scrape_with_capsolver_extension.py
在 CapSolver 获取顶尖验证码解决方案的奖励代码:scrape。兑换后,每次充值后您将获得额外的 5% 奖励,无限次。

通过使用 CapSolver 浏览器扩展 将 CapSolver 集成到 Botright 中,您可以在网页抓取项目中自动化验证码解决。这确保了不间断的数据提取,即使从受验证码保护的站点也是如此。
关键要点:
通过我们面向开发人员的全面API文档,掌握验证码解决技巧。学习如何将CapSolver集成到您的系统中,以处理reCAPTCHA、AWS WAF以及更多内容。
