Quay lại blog

API Scraper ChatGPT: Ghi lại các câu trả lời và bằng chứng trích dẫn

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

30-Sep-2026

TL;DR:

  • Một bản chụp câu trả lời ChatGPT ghi lại một quan sát dưới các điều kiện đã chọn. Lưu lại lời nhắc, quốc gia và cài đặt tìm kiếm cùng với câu trả lời đã nhận.
  • Việc thu thập câu trả lời và trích xuất webpage giải quyết các vấn đề khác nhau. Một trích dẫn trong một câu trả lời không chứng minh rằng trang đã trích dẫn hỗ trợ mọi câu trong câu trả lời.
  • API ChatGPT Scraper sử dụng vòng đời tác vụ. Tạo tác vụ, giữ lại định danh của nó và đọc kết quả đã hoàn thành riêng biệt.
  • Các trường trích dẫn bị thiếu cần xử lý rõ ràng. Bảo quản payload thô trước khi giảm nó thành bảng giám sát.
  • Miễn phí để bắt đầu. Các tài khoản Scrapeless mới bao gồm thời gian chạy Trình duyệt Scraping miễn phí — đăng ký tại app.scrapeless.com.

Giới thiệu: ghi lại câu trả lời trước khi đo lường độ hiển thị

Một quan sát về độ hiển thị thương hiệu cần câu trả lời thực sự đã được trả về, không phải là một câu trả lời được xây dựng lại từ bộ nhớ của mô hình. Lời nhắc và các hoàn cảnh thu thập là một phần của quan sát đó. Một lời nhắc thay đổi có thể thay đổi cả khuyến nghị và các nguồn được đính kèm với nó.

API ChatGPT Scraper thu thập bề mặt câu trả lời dưới dạng dữ liệu. Nó không yêu cầu một mô hình ngôn ngữ truy cập vào một danh sách các trang và trích xuất nội dung của chúng. Nếu đó là mục tiêu của bạn, quy trình làm việc cho sử dụng ChatGPT để giúp xây dựng một trình thu thập dữ liệu website giải quyết một vấn đề thu thập khác. Giữ hai tập dữ liệu này tách biệt ngay cả khi cùng một tên mô hình xuất hiện trong cả hai.

Hướng dẫn này xây dựng một kho lưu trữ câu trả lời xung quanh giao diện tác vụ Scrapeless hiện tại. Kho lưu trữ này giữ nguyên byte phản hồi gốc, sau đó kiểm tra các câu trả lời và các trường trích dẫn. Nó cung cấp cho một nhóm nghiên cứu GEO một đơn vị quan sát có thể bảo vệ mà không coi một phản hồi nào như một bảng xếp hạng chung.

Kho lưu trữ câu trả lời ChatGPT có thể hỗ trợ điều gì?

Một kho lưu trữ câu trả lời hỗ trợ so sánh ở một bộ lời nhắc đã kiểm soát và các điều kiện thu thập. Nhiệm vụ đầu tiên của nó là bảo toàn bằng chứng; việc chấm điểm đến sau.

  • Xem xét đề cập thương hiệu. Kiểm tra xem một câu trả lời có nêu tên sản phẩm hay không, và giữ lại đoạn văn xung quanh thay vì đếm một chuỗi con mơ hồ.
  • Danh mục trích dẫn. Lưu trữ URL của nguồn riêng biệt với tiêu đề nguồn để một trang được đổi tên không trở thành một nguồn mới một cách ngẫu nhiên.
  • Phân tích thông điệp. So sánh lý do cho một khuyến nghị dưới cùng một cách diễn đạt câu hỏi.
  • Quan sát khu vực. Ghi lại quốc gia như một cài đặt thu thập, trong khi nhận ra rằng chỉ quốc gia không tái hiện mọi phiên người dùng cá nhân hóa.
  • Lập kế hoạch nội dung. Kiểm tra các câu hỏi và loại nguồn nào xuất hiện trong các câu trả lời trước khi quyết định bằng chứng mà một bài viết mới nên cung cấp.

Một lời nhắc về tiêu chuẩn HTTP công cộng là một ví dụ khởi đầu hữu ích vì chủ đề này có các tài liệu tham khảo ổn định. Các lời nhắc khuyến nghị thương mại có thể theo sau khi việc xử lý câu trả lời hoạt động.

Tại sao sử dụng diễn viên Scrapeless ChatGPT?

Diễn viên Scrapeless ChatGPT phơi bày văn bản câu trả lời và thông tin nguồn liên quan thông qua một giao diện đã được tài liệu hóa. Định danh diễn viên là scraper.chatgpt; hợp đồng hiện tại về thu thập câu trả lời ChatGPT mô tả các trường đầu vào và đầu ra của nó. Diễn viên nằm dưới trang sản phẩm AI Scraper thay vì một lộ trình sản phẩm riêng biệt.

Giao diện được quản lý loại bỏ sự cần thiết phải duy trì các bộ chọn giao diện trò chuyện trong khách hàng. Nó không làm cho tất cả thuộc tính câu trả lời trở thành bắt buộc, không loại bỏ sự biến đổi của mô hình, hoặc biến các trích dẫn thành các sự thật đã được xác minh. Những trách nhiệm đó vẫn thuộc về ứng dụng tiêu thụ phản hồi.

Kiểm tra giá Scrapeless để biết các điều khoản thương mại hiện tại trước khi mở rộng một bộ lời nhắc. Ví dụ này cố ý vô hiệu hóa dữ liệu mua sắm và không đưa ra bất kỳ lời hứa nào về độ trễ hoặc chi phí trên mỗi câu trả lời.

Các yêu cầu tiên quyết cho việc thu thập câu trả lời

Sử dụng Python 3.12, Requests 2.34.2 và một tài khoản Scrapeless có quyền truy cập vào diễn viên ChatGPT. Cấu hình SCRAPELESS_API_KEY cục bộ; không đặt thông tin chứng thực vào lời nhắc, tệp nguồn hoặc siêu dữ liệu phản hồi đã lưu.

Việc tạo tác vụ và lấy kết quả đã xác thực yêu cầu khóa đó. Ví dụ đã được kiểm tra cú pháp so với hợp đồng hiện tại, nhưng việc thu thập câu trả lời đã xác thực vẫn đang chờ xác thực trực tiếp khi không có thông tin chứng thực. Không có câu trả lời mẫu nào dưới đây được trình bày như một kết quả API đã hoàn thành.

Cài đặt khách hàng HTTP trong môi trường ảo đang hoạt động của bạn:

bash Copy
python -m pip install requests==2.34.2

Tạo một tác vụ với cài đặt câu trả lời rõ ràng

Task creation sends an actor name and input object to the current request endpoint. prompt và country là bắt buộc đối với diễn viên ChatGPT; các boolean tùy chọn nên được chỉ rõ khi tập dữ liệu phụ thuộc vào chúng.

Cài đặt Ví dụ lựa chọn Tại sao giữ lại nó
prompt Một câu hỏi về các nguồn HTTP công khai Xác định câu hỏi thực sự được hỏi
country US Ghi nhận điều kiện thu thập theo vùng
web_search true Yêu cầu làm phong phú tìm kiếm; kiểm tra chứng cứ được trả về
shopping false Giữ cho ví dụ này tập trung vào thông tin câu trả lời và nguồn gốc

Các điểm cuối là POST /api/v2/scraper/request và GET /api/v2/scraper/result/{task_id}. Đừng suy ra rằng một ví dụ gọi đơn cũ hơn sử dụng cùng một vòng đời. Phản hồi tạo tác vụ không phải là câu trả lời hoàn chỉnh.

Sự phân biệt giữa thành công yêu cầu và hoàn tất ứng dụng cũng xuất hiện trong ngữ nghĩa phản hồi HTTP: một trạng thái HTTP mô tả sự trao đổi, trong khi trạng thái của tác vụ mô tả công việc.

Bắt đầu thu thập dữ liệu với Scrapeless

Nâng cao quy trình thu thập dữ liệu và tự động hóa của bạn với Scrapeless!
Đăng ký ngay hôm nay và nhận $5 tín dụng miễn phí — không yêu cầu thẻ tín dụng.

Nhận tín dụng miễn phí của bạn ngay bây giờ trong Bảng điều khiển Scrapeless.

Giữ nguyên phản hồi gốc trước khi xem xét các trường

Một bộ thu thập câu trả lời nên lưu trữ phản hồi gốc trước khi phân tích nó thành một lược đồ hẹp hơn. Điều này giúp bảo tồn chứng cứ khi một dịch vụ trả về một phong bì không mong đợi hoặc một trường có điều kiện thay đổi.

Lưu đoạn mã hoàn chỉnh sau đây dưới dạng chatgpt_capture.py. Lưu ý: khối này yêu cầu một khóa API thực tế và vẫn chưa hoàn tất xác thực trực tiếp. Đầu tiên, chạy nó mà không có TASK_ID để tạo một tác vụ. Giữ lại phản hồi tạo và sử dụng định danh trả về của nó làm TASK_ID khi bạn sau đó gọi lại cùng một đoạn mã để đọc kết quả của tác vụ đó.

python Copy
import json
import os
from datetime import datetime, timezone
from pathlib import Path
import requests

root = Path('answer-evidence')
root.mkdir(exist_ok=True)
task_id = os.environ.get('TASK_ID')
headers = {'x-api-token': os.environ['SCRAPELESS_API_KEY']}
settings = {
    'prompt': 'Which public sources explain HTTP semantics?',
    'country': 'US', 'web_search': True, 'shopping': False
}
if task_id:
    response = requests.get(
        f'https://api.scrapeless.com/api/v2/scraper/result/{task_id}',
        headers=headers, timeout=60)
    name = 'result'
else:
    response = requests.post(
        'https://api.scrapeless.com/api/v2/scraper/request',
        headers=headers,
        json={'actor': 'scraper.chatgpt', 'input': settings}, timeout=60)
    name = 'creation'

# Keep the original bytes, including unsuccessful responses.
stamp = datetime.now(timezone.utc).strftime('%Y%m%dT%H%M%S%fZ')
path = root / f'{name}-{stamp}'
path.with_suffix('.body').write_bytes(response.content)
path.with_suffix('.meta.json').write_text(json.dumps({
    'task_id': task_id, 'settings': settings if not task_id else None,
    'http_status': response.status_code, 'captured_at': stamp
}, indent=2))
response.raise_for_status()
data = response.json()
if not task_id:
    print(json.dumps(data, indent=2))
    print('Keep the returned task identifier; set TASK_ID for result retrieval.')
else:
    status = data.get('status')
    print(json.dumps({'task_id': task_id, 'status': status}))
    if status == 'success':
        payload = data.get('task_result')
        if not isinstance(payload, dict):
            raise ValueError('Successful task has no object payload')
        if not isinstance(payload.get('result_text'), str):
            raise ValueError('Answer text missing; inspect saved raw body')
        print(json.dumps({
            'answer_characters': len(payload['result_text']),
            'citation_field_present': 'content_references' in payload,
            'citation_field_type': type(payload.get('content_references')).__name__
        }))

Đoạn mã thực hiện một yêu cầu cho mỗi lần gọi. Nó không hứa hẹn rằng tác vụ kết thúc trong thời gian chờ của yêu cầu. Kiểm tra phong bì tạo đã lưu thay vì đoán trường định danh của nó, sau đó đọc tác vụ cụ thể đó thông qua điểm cuối kết quả.

Một kết quả với pending hoặc running là chưa hoàn thiện. Một kết quả với failed là một quan sát thất bại, không phải một câu trả lời trống. Trên success, kiểm tra task_result và lưu trữ các kết quả hoàn thành kịp thời trong lưu trữ của riêng bạn. vòng đời tác vụ xác định các trạng thái trạng thái; một lời hứa giữ lại cố định là không cần thiết cho thiết kế này.

Đọc chứng cứ trích dẫn mà không thái quá

Chứng cứ trích dẫn ghi lại các nguồn được công khai với một câu trả lời; nó không xác minh tính thực tế của câu trả lời. Một URL được trả về có thể là một liên kết nguồn, một liên kết bổ sung hoặc một mục liên quan đến việc làm phong phú tìm kiếm. Giữ những danh mục đó riêng biệt.

Trường diễn viên Giải thích Xử lý ứng dụng
result_text Văn bản câu trả lời Markdown Bắt buộc cho một quan sát câu trả lời được chấp nhận
model Định danh mô hình được trả về Lưu giá trị nhận được; không mã cứng
web_search Cờ làm phong phú tìm kiếm được trả về So sánh với cài đặt yêu cầu
content_references Thông tin gán câu trả lời, khi được cung cấp Giữ các mục và phân biệt cái vắng mặt với cái trống rỗng
search_result Các mục liên quan đến tìm kiếm Giữ tiêu đề, đoạn trích, thông tin gán và URL khi có
links Các liên kết bổ sung Không tự động tính mọi liên kết là một trích dẫn câu trả lời

Đây là ý nghĩa của các trường được ghi lại, không phải một mẫu phản hồi đã xác thực. Một đối tượng JSON có thể có cú pháp hợp lệ trong khi thiếu câu trả lời bạn cần; định dạng dữ liệu JSON xác định cú pháp, không phải sự hoàn chỉnh của tác vụ.

Xác thực các thuộc tính câu trả lời cần thiết riêng biệt với các ràng buộc JSON Schema trước khi dẫn xuất các chỉ số từ phản hồi.

Một lưu trữ nên kết nối yêu cầu gốc, kết quả tác vụ và bất kỳ điểm số nào được dẫn xuất. Mối quan hệ đó là giá trị thực tế của nguồn gốc dữ liệu. Lưu trữ các chứng cứ nguồn với quan sát, và làm cho những thay đổi sau này đối với quy tắc chấm điểm có thể truy vết độc lập.

Xây dựng một bảng quan sát kiểm soát

Một bảng quan sát hữu ích nhóm các câu trả lời theo một định danh prompt ổn định và điều kiện thu thập. Nó nên giữ một con trỏ đến bằng chứng thô thay vì thay thế bằng chứng đó bằng một điểm số hiển thị duy nhất.

Giữ prompt_id, văn bản prompt chính xác, quốc gia, tùy chọn yêu cầu, định danh nhiệm vụ, thời gian thu thập, trạng thái nhiệm vụ và vị trí kết quả thô. Đưa các đề cập thương hiệu và URL trích dẫn vào các bảng sinh ra. Điều này cho phép bạn thay đổi quy tắc khớp thực thể mà không cần thu thập một câu trả lời khác chỉ để sửa chữa một trình phân tích.

So sánh câu trả lời chỉ khi câu hỏi và cài đặt hỗ trợ việc so sánh. Một sản phẩm không có trong một câu trả lời là một sự vắng mặt quan sát dưới những điều kiện đó; nó không phải là bằng chứng rằng mô hình không bao giờ gợi ý sản phẩm đó. Ngược lại, một URL trích dẫn xuất hiện trong một phản hồi không phải là bằng chứng của tính khả dụng bền vững ở các câu hỏi.

Tránh thu thập lịch sử tài khoản, xuất cảnh riêng tư hoặc các prompt bí mật cho một tập dữ liệu hiển thị công khai. Giảm thiểu nội dung prompt được lưu trữ nếu một thành viên trong nhóm vô tình chèn thông tin khách hàng. Lưu trữ nên chứa câu hỏi nghiên cứu công khai, không phải bối cảnh cá nhân không liên quan.

Kết luận: bảo tồn quan sát, sau đó cho điểm nó

Một API ChatGPT Scraper trở nên hữu ích cho nghiên cứu tính khả dụng khi khách hàng giữ nguyên các điều kiện yêu cầu, câu trả lời đã hoàn thành và bằng chứng nguồn cùng nhau. Vòng đời nhiệm vụ cung cấp quan sát; ứng dụng cung cấp các quy tắc chấp nhận và phân tích.

Bắt đầu với một tập hợp prompt nhỏ đã được phê duyệt. Kiểm tra các kết quả xác thực đầu tiên, lập bản đồ các phong bì thực tế của chúng, và xác định cách xử lý trường hợp thiếu trước khi tạo ra một biểu đồ. Lưu trữ sau đó có thể hỗ trợ các so sánh mà giả định của chúng vẫn hiển thị.


Sẵn sàng để Xây dựng Quy trình Dữ liệu Sử dụng AI của Bạn?

Tham gia cộng đồng của chúng tôi để yêu cầu một kế hoạch miễn phí và kết nối với các nhà phát triển xây dựng quy trình dữ liệu web: Discord · Telegram.

Đăng ký tại app.scrapeless.com để có runtime Trình duyệt Scraping miễn phí và điều chỉnh các mẫu trên cho quy trình dữ liệu công khai của riêng bạn.


Câu hỏi Thường gặp

H: API ChatGPT Scraper có trích xuất mọi trang web đã trích dẫn không?

Không. API ChatGPT Scraper thu thập bề mặt câu trả lời và thông tin nguồn liên quan. Việc lấy và xác thực các trang web đã trích dẫn là một quy trình làm việc riêng.

H: Việc thu thập câu trả lời ChatGPT có hợp pháp không?

Phạm vi cho phép phụ thuộc vào các điều khoản liên quan, điều kiện truy cập, quyền và quyền tài phán. Sử dụng các prompt nghiên cứu dữ liệu công khai đã được phê duyệt và có sự xem xét pháp lý cho chính sách thu thập sản xuất; tính khả dụng công khai một mình không phải là sự cho phép chung.

H: Liệu khách hàng Python có cần proxy riêng không?

Người quản lý xử lý việc thu thập phía sau API của nó. Khách hàng đặt tham số country đã được tài liệu hóa; nó không cấu hình một proxy trình duyệt riêng trong ví dụ này.

H: Một nhiệm vụ chưa hoàn thành hoặc thất bại có ý nghĩa gì trong một báo cáo?

Một nhiệm vụ chưa hoàn thành hoặc thất bại là một quan sát không hoàn chỉnh. Lưu trữ trạng thái và bằng chứng của nó riêng biệt với các câu trả lời đã chấp nhận; không cho điểm nó như một câu trả lời thành công mà không có đề cập.

H: Có thể một danh sách trích dẫn trống là một kết quả hợp lệ không?

Một danh sách trích dẫn trống có thể xảy ra mà không làm cho văn bản câu trả lời trở nên không sử dụng được. Ghi lại liệu trường đó bị thiếu, null hay là một danh sách trống, và tránh việc đồng nhất những trạng thái đó trước khi xem xét hợp đồng kết quả thực tế.

H: Việc thu thập câu trả lời có thể chạy mà không có một tác nhân AI không?

Đúng. Khách hàng Requests giao tiếp trực tiếp với các điểm cuối nhiệm vụ đã được tài liệu hóa. Không cần phải có khung tác nhân hoặc mã trích xuất được tạo ra để vận hành khách hàng đó.

H: Nên bắt đầu việc thu thập prompt song song như thế nào?

Bắt đầu với một nhiệm vụ mà vòng đời hoàn chỉnh và đầu ra đã được kiểm tra. Áp dụng khả năng đã được tài liệu hóa của tài khoản và một kế hoạch thu thập giới hạn sau đó; hướng dẫn này không cung cấp giới hạn thông lượng phổ quát nào.

Tại Scrapless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách bảo mật trang web hiện hành. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động cạo nào, hãy tham khảo ý kiến ​​cố vấn pháp lý của bạn và xem xét các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.

Bài viết phổ biến nhất

Danh mục