Python SDK

Tổng quan

Scrapeless Python SDK chính thức cung cấp quyền truy cập vào tự động hóa trình duyệt, thu thập dữ liệu, crawl, proxies, kết quả tìm kiếm và trích xuất nội dung AI chat. Hướng dẫn này tuân theo SDK repository README, với các ví dụ có thể chạy được và chi tiết cấu hình.

Yêu cầu

Python 3.8 trở lên được khai báo trong package metadata. Các tích hợp trình duyệt có thể yêu cầu phiên bản Python mới hơn tùy thuộc vào phiên bản Playwright hoặc Pyppeteer đã cài đặt.

Hãy sử dụng môi trường ảo (virtual environment) để giữ các dependency của SDK tách biệt với các dự án khác.

Cài đặt

pip install scrapeless

Repository sử dụng python-dotenv để tải các biến môi trường, nhưng package metadata hiện tại của nó không liệt kê dependency đó. Cài đặt nó cùng với SDK nếu cần:

pip install python-dotenv

Cài đặt pyppeteer hoặc playwright riêng khi sử dụng tích hợp trình duyệt tương ứng.

Xác thực / API Key

Đăng nhập vào bảng điều khiển Scrapeless và tạo một API key. Export nó trước khi chạy các ví dụ:

export SCRAPELESS_API_KEY="YOUR_API_KEY"

Hãy giữ API key của bạn trong môi trường hoặc trình quản lý bí mật (secret manager) thay vì commit nó vào hệ thống kiểm soát mã nguồn.

Scrapeless() đọc SCRAPELESS_API_KEY. Bạn cũng có thể truyền một mục api_key trong dictionary cấu hình client.

Bắt đầu nhanh

Lưu đoạn này thành quickstart.py và chạy python quickstart.py sau khi thiết lập API key của bạn.

from scrapeless import Scrapeless
from scrapeless.types import UniversalScrapingRequest
 
client = Scrapeless()
result = client.universal.scrape(UniversalScrapingRequest(
    actor='unlocker.webunlocker',
    input={'url': 'https://example.com', 'method': 'GET', 'redirect': False}
))
print(result)

Ma trận phạm vi sản phẩm

Sản phẩmDịch vụ SDKPhạm vi
Agent Browserclient.browserTạo và quản lý các phiên trình duyệt từ xa.
Browser Profilesclient.profilesLưu trữ dữ liệu trình duyệt qua các phiên.
Scraping APIclient.scrapingTrích xuất dữ liệu có cấu trúc bằng cách sử dụng website actors.
Web Unlockerclient.universalTruy xuất nội dung từ các trang web được bảo vệ.
Crawlclient.scraping_crawlThu thập dữ liệu một trang hoặc crawl toàn bộ website.
Google Search APIclient.deepserpTrích xuất kết quả từ công cụ tìm kiếm.
Proxiesclient.proxiesTạo URL kết nối proxy.
AI Scraperclient.ai_scraperTạo các tác vụ AI chat và truy xuất trạng thái cùng kết quả của chúng.

Ví dụ sử dụng

Browser

Cài đặt tích hợp trình duyệt bằng pip install pyppeteer.

Quản lý phiên trình duyệt nâng cao hỗ trợ các framework Playwright và Pyppeteer, với các khả năng chống phát hiện có thể cấu hình (ví dụ: giả mạo fingerprint, giải CAPTCHA) và các quy trình tự động hóa có thể mở rộng:

from scrapeless import Scrapeless
from scrapeless.types import ICreateBrowser
import asyncio
import pyppeteer
 
client = Scrapeless()
 
 
async def example():
    # Create a browser session
    config = ICreateBrowser(
        session_name='sdk_test',
        session_ttl=180,
        proxy_country='US',
        session_recording=True
    )
    session = client.browser.create(config).__dict__
    browser_ws_endpoint = session['browser_ws_endpoint']
    print('Browser WebSocket endpoint created:', browser_ws_endpoint)
 
    # Connect to browser using pyppeteer
    browser = await pyppeteer.connect({'browserWSEndpoint': browser_ws_endpoint})
    try:
        page = await browser.newPage()
        await page.goto('https://example.com')
        print(await page.title())
    finally:
        await browser.close()
 
 
asyncio.run(example())

Browser Profile

Quản lý các browser profile cho các phiên bền vững.

from scrapeless import Scrapeless
 
client = Scrapeless()
profile = client.profiles.create('My Profile')
print(profile)

Scraping API

Các API trích xuất dữ liệu trực tiếp cho các trang web (ví dụ: thương mại điện tử, nền tảng du lịch). Truy xuất thông tin sản phẩm có cấu trúc, giá cả và đánh giá với các connector dựng sẵn:

from scrapeless import Scrapeless
from scrapeless.types import ScrapingTaskRequest
 
client = Scrapeless()
request = ScrapingTaskRequest(
    actor='scraper.google.search',
    input={'q': 'nike site:www.nike.com'}
)
result = client.scraping.scrape(request=request)
print(result)

Web Unlocker

Trích xuất dữ liệu từ các trang web bằng Web Unlocker (được cung cấp dưới dạng client.universal).

from scrapeless import Scrapeless
from scrapeless.types import UniversalScrapingRequest
 
client = Scrapeless()
result = client.universal.scrape(UniversalScrapingRequest(
    actor='unlocker.webunlocker',
    input={'url': 'https://example.com', 'method': 'GET', 'redirect': False}
))
print(result)

Crawl

Trích xuất dữ liệu từ các trang đơn lẻ hoặc duyệt qua toàn bộ tên miền, xuất ra các định dạng bao gồm Markdown, JSON, HTML, ảnh chụp màn hình và liên kết.

from scrapeless import Scrapeless
 
client = Scrapeless()
 
result = client.scraping_crawl.scrape_url("https://example.com")
print(result)

Proxy

Tạo một URL proxy bằng cách sử dụng thiết lập gateway và phiên của bạn.

from scrapeless import Scrapeless
from scrapeless.types import ICreateProxy
 
client = Scrapeless()
proxy_url = client.proxies.proxy(ICreateProxy(
    country='US',
    session_duration=30,
    session_id=client.proxies.generate_session_id(),
    gateway='your-proxy-gateway:port'
))
print(proxy_url)

AI Scraper

Trích xuất nội dung AI chat hàng loạt để theo dõi lượt nhắc đến thương hiệu, so sánh câu trả lời và phân tích thông tin cạnh tranh từ các mô hình mới nhất. Truy xuất URL, prompt, câu trả lời dạng Markdown, trích dẫn và nhiều hơn nữa thông qua một tích hợp duy nhất.

Các actor được hỗ trợ bao gồm scraper.chatgpt, scraper.perplexity, scraper.copilot, scraper.gemini, scraper.aimode, scraper.overview, scraper.grok và scraper.alexa. JSON input phụ thuộc vào actor; xem tài liệu AI Scraper để biết các tham số chi tiết. JSON webhook tùy chọn chứa một url callback.

from scrapeless import Scrapeless
from scrapeless.types import AIScraperTaskRequest
 
 
def main():
    client = Scrapeless()  # Uses SCRAPELESS_API_KEY
    task = client.ai_scraper.create_task(AIScraperTaskRequest(
        actor='scraper.chatgpt',
        input={
            'prompt': 'Most reliable proxy service for data extraction',
            'country': 'US',
            'web_search': True,
        },
        # Optional: webhook={'url': 'https://your-webhook.example.com'},
    ))
    print('Created task:', task)
 
    result = client.ai_scraper.get_task_result(task['task_id'])
    print('Task status and result:', result)
    # If status is 'running', call get_task_result again later.
    # If status is 'failed', message contains the failure reason.
 
 
if __name__ == '__main__':
    main()

Cả hai phương thức đều trả về JSON API không thay đổi. Việc tạo trả về task_id, status, và khi có sẵn, task_result. Việc truy xuất kết quả trả về status, task_result khi có sẵn, và message khi thất bại. Trạng thái là success, failed, hoặc running; SDK không tự động poll.

create_task chấp nhận một AIScraperTaskRequest hoặc một dictionary; dictionary cũng cho phép thêm các tham số API bổ sung. Phản hồi là các dictionary.

Google Search API

from scrapeless import Scrapeless
from scrapeless.types import ScrapingTaskRequest
 
client = Scrapeless()
result = client.deepserp.scrape(ScrapingTaskRequest(
    actor='scraper.google.search',
    input={'q': 'nike site:www.nike.com'}
))
print(result)

Để có các tích hợp hoàn chỉnh hơn, hãy duyệt qua thư mục examples của repository.

Xử lý lỗi

Bắt ScrapelessError cho các lỗi yêu cầu API. Kiểm tra status của phản hồi AI Scraper riêng biệt để xử lý các tác vụ thất bại.

from scrapeless import Scrapeless, ScrapelessError
from scrapeless.types import UniversalScrapingRequest
 
client = Scrapeless()
try:
    result = client.universal.scrape(UniversalScrapingRequest(
        actor='unlocker.webunlocker',
        input={'url': 'https://example.com', 'method': 'GET'}
    ))
    print(result)
except ScrapelessError as error:
    print(f'Scrapeless API error: {error}')

Ngoại lệ Python hiện tại cung cấp thông báo lỗi; nó không định nghĩa thuộc tính status_code.

Cấu hình / Biến môi trường

API key là bắt buộc. Việc ghi đè endpoint là tùy chọn; bảng dưới đây hiển thị các giá trị mặc định của chúng.

Truyền một dictionary cho Scrapeless để ghi đè cấu hình:

import os
from scrapeless import Scrapeless
 
client = Scrapeless({
    'api_key': os.environ['SCRAPELESS_API_KEY'],
    'timeout': 30000,  # Request timeout in milliseconds
    'base_api_url': 'https://api.scrapeless.com',
    'browser_api_url': 'https://browser.scrapeless.com',
    'scraping_crawl_api_url': 'https://api.scrapeless.com',
})

Cấu hình tường minh được ưu tiên hơn các biến môi trường. Thời gian chờ yêu cầu mặc định là 30.000 mili giây.

Biến môi trườngMục đích / mặc định
SCRAPELESS_API_KEYAPI key bắt buộc từ bảng điều khiển.
SCRAPELESS_BASE_API_URLhttps://api.scrapeless.com
SCRAPELESS_BROWSER_API_URLhttps://browser.scrapeless.com
SCRAPELESS_CRAWL_API_URLhttps://api.scrapeless.com

Hỗ trợ

SDK được phát hành theo Giấy phép MIT.

Các dự án liên quan