
Emma Foster
Machine Learning Engineer

capsolver-core cocok untuk skrip Playwright, capsolver-agent cocok untuk agen pemanggil alat, dan capsolver-mcp cocok untuk klien yang kompatibel dengan MCP.Otomatisasi ekstraksi data pengumuman tender harus dibangun sebagai langkah agen yang dipantau dengan transisi state yang jelas. CapSolver harus dihubungkan sebagai kemampuan agen yang terdokumentasi: browser atau model mendeteksi tantangan verifikasi, alat yang disetujui menanganinya, dan agen hanya melanjutkan ketika tugas yang diizinkan pengguna asli masih valid. Dokumen CapSolver AI resmi menjelaskan tiga lapisan praktis: CapSolver untuk Agen AI untuk arsitektur, SDK Core mode browser untuk alur Playwright, skema alat agen untuk pemanggilan model, dan alat layanan MCP untuk klien yang menemukan alat melalui Protokol Konteks Model. Artikel ini mengubah dokumen-dokumen tersebut menjadi alur kerja otomatisasi ekstraksi data pengumuman tender yang siap produksi dengan kode, aturan berhenti, dan bidang pencatatan.
Dokumen AI CapSolver menjelaskan tiga lapisan. Gunakan lapisan terendah yang sesuai dengan model kepemilikan Anda: SDK Core ketika kode Anda mengontrol browser, alat agen ketika model menentukan kapan memanggil alat, dan layanan MCP ketika klien AI Anda harus menemukan alat penyelesaian secara otomatis.
pip install "capsolver-core[playwright] @ git+https://github.com/capsolver-ai/capsolver-core.git"
pip install git+https://github.com/capsolver-ai/capsolver-agent.git
pip install "capsolver-mcp[browser] @ git+https://github.com/capsolver-ai/capsolver-mcp.git"
playwright install chromium
export CAPSOLVER_API_KEY="your-capsolver-api-key"
Pendahuluan dan Mulai Cepat menjelaskan peran paket: capsolver-core mengekspos mesin, capsolver-agent mengelilinginya sebagai alat, dan capsolver-mcp mengekspos kemampuan yang sama ke klien MCP. Simpan kunci API di konfigurasi lingkungan dan hindari menempatkannya di prompt, log, screenshot, atau contoh artikel.
Alur otomatisasi ekstraksi data pengumuman tender yang paling aman memisahkan pencarian, ekstraksi detail, parsing lampiran, dan tinjauan. Penanganan CAPTCHA seharusnya berada antara akses halaman dan ekstraksi, bukan setelah data sudah dicampur dengan konten yang belum diverifikasi.
states = [
"discover_notice_list",
"open_notice_detail",
"challenge_detected",
"resume_after_solution",
"extract_public_fields",
"review_or_stop",
]
required_fields = ["notice_id", "buyer", "deadline", "source_url"]
Struktur ini membantu agen melaporkan tepat di mana ia berhenti. Ini juga menjaga lapisan ekstraksi terpisah dari lapisan tantangan.
Gunakan capsolver-core ketika alur otomatisasi ekstraksi data pengumuman tender Anda sudah memiliki halaman Playwright. Jalur SDK Inti resmi adalah deteksi, baca informasi CAPTCHA, selesaikan, lalu isi token kembali ke halaman. Panggilan browser all-in-one berguna ketika struktur halaman dinamis.
import asyncio
from capsolver_core import create_capsolver
from playwright.async_api import async_playwright
TARGET_URL = "https://example.gov/tenders/search"
async def run_agent_step():
async with async_playwright() as pw:
browser = await pw.chromium.launch()
page = await browser.new_page()
await page.goto(TARGET_URL, wait_until="domcontentloaded")
async with create_capsolver(api_key="YOUR_CAPSOLVER_KEY") as cap:
captcha_types = await cap.detect(page)
if not captcha_types:
return "continue_without_challenge"
results = await cap.solve_on_page(page)
solved = [r for r in results if r.solution and not r.error]
if not solved:
return "stop_for_review"
return "resume_original_authorized_task"
asyncio.run(run_agent_step())
Detail teknik penting adalah nilai kembalian, bukan hanya token. Agen Anda hanya boleh melanjutkan ketika tugas asli masih sah, wajar, dan diizinkan pengguna. Ia harus berhenti ketika halaman meminta data pribadi, terbatas, sensitif, atau tidak diizinkan.
Gunakan capsolver-agent ketika model harus memilih kapan penanganan tantangan diperlukan. Panduan Alat Agen mengekspos definisi alat dengan get_all_tools() dan mengarahkan pemanggilan alat model melalui create_executor().
import json
from openai import OpenAI
from capsolver_agent.schema import create_executor, get_all_tools
client = OpenAI()
executor = create_executor(api_key="YOUR_CAPSOLVER_KEY", default_timeout=120)
tools = [tool.to_openai_function() for tool in get_all_tools()]
messages = [{
"role": "user",
"content": "Lanjutkan tugas browser yang disetujui. Jika CAPTCHA muncul, panggil alat CapSolver sekali dan laporkan hasilnya."
}]
async def run_one_turn():
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=tools,
)
for call in response.choices[0].message.tool_calls or []:
args = json.loads(call.function.arguments)
result = await executor.execute(call.function.name, args)
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": json.dumps(result),
})
Untuk otomatisasi ekstraksi data pengumuman tender, ikat jalur alat ini ke kebijakan peninjau. Model dapat meminta alat, tetapi aplikasi Anda menentukan domain yang disetujui, jumlah maksimum percobaan, dan apakah hasilnya dapat digunakan untuk melanjutkan.
Klaim Kode Bonus CapSolver Anda
Tingkatkan anggaran otomatisasi Anda secara instan!
Gunakan kode bonus CAP26 saat menambahkan dana ke akun CapSolver Anda untuk mendapatkan tambahan 5% bonus pada setiap pengisian ulang — tanpa batas.
Klaim sekarang di Dasbor CapSolver
Sebelum memanggil alat tantangan apa pun, konfirmasi bahwa tugas diizinkan pengguna, target berada dalam daftar domain yang disetujui, dan data yang diakses bersifat publik atau diizinkan. Alur kerja otomatisasi ekstraksi data pengumuman tender tidak boleh menganggap kemampuan teknis sebagai izin.
Gunakan anggaran ulang yang kecil. Satu ulang state browser dan satu ulang cooldown biasanya cukup. Peristiwa tantangan berulang harus menciptakan tiket tinjauan alih-alih terus berjalan diam-diam.
Catat URL, timestamp, jenis tantangan, jalur paket CapSolver, jumlah percobaan, status hasil, dan status halaman akhir. Jangan menyimpan konten halaman yang tidak relevan, kredensial, rahasia sesi, atau data pribadi kecuali kebijakan Anda secara eksplisit mengizinkannya.
Untuk otomatisasi ekstraksi data pengumuman tender, pertahankan operasi yang sah dan berdasarkan bukti: hormati perilaku kode status HTTP, persyaratan aksesibilitas, manajemen risiko privasi, dan kepemilikan data publik.
Artikel otomatisasi ekstraksi data pengumuman tender yang kuat harus menunjukkan jalur implementasi nyata, dan alur kerja produksi yang kuat harus melakukan hal yang sama. Pilihan praktis sederhana: gunakan capsolver-core untuk otomatisasi browser yang dikuasai kode, capsolver-agent untuk agen pemanggil alat, dan capsolver-mcp untuk klien yang kompatibel dengan MCP. Pertahankan penanganan tantangan terbatas, dicatat, dan terkait dengan pekerjaan yang diizinkan pengguna. Ketika tim Anda siap menambahkan lapisan pemulihan ke alur kerja agen, mulailah dengan CapSolver dan dokumen agen AI resmi.
Gunakan capsolver-core ketika aplikasi Anda menguasai kode browser, capsolver-agent ketika model harus memanggil alat, dan capsolver-mcp ketika klien AI harus menemukan alat melalui MCP.
Tidak. Model dapat meminta pemanggilan alat, tetapi aplikasi harus menerapkan lingkup, batas ulang, dan kondisi berhenti.
Tidak. Penanganan CAPTCHA tidak memberikan izin. Gunakan hanya untuk alur kerja yang sah, wajar, dan diizinkan pengguna yang menghormati ketentuan situs dan hak data.
Catat URL sumber, jenis tantangan, jalur alat, jumlah percobaan, status hasil, dan status halaman akhir. Jangan masukkan kredensial dan konten halaman yang tidak relevan ke dalam log.
Pelajari arsitektur pengambilan data web Rust yang dapat diskalakan dengan reqwest, scraper, pengambilan data asinkron, pengambilan data browser tanpa tampilan, rotasi proxy, dan penanganan CAPTCHA yang sesuai aturan.

Mengotomasi penyelesaian CAPTCHA dengan Nanobot dan CapSolver. Gunakan Playwright untuk menyelesaikan reCAPTCHA dan Cloudflare secara otomatis.
