Quay lại blog

Grok X Search API: Bắt dữ liệu bài viết X (Twitter) dưới dạng JSON có cấu trúc

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

11-Aug-2026

TL;DR:

  • Grok trả lời trích dẫn X bài viết, và scraper.grok actor Scrapeless trả lại những bài viết đó dưới dạng một mảng có cấu trúc riêng. x_search_results ngồi cạnh web_search_results trong cùng một payload, vì vậy một yêu cầu sẽ trả về cả trích dẫn từ open-web và trích dẫn X (Twitter) mà không cần phân tích HTML.
  • Mỗi trích dẫn X mang mười một khóa, bảy trong số đó đã được điền dữ liệu trong mọi lần thu thập. post_id, user_name, name, text, create_time, view_count, và profile_image_url không rỗng trong tất cả 167 bài viết được thu thập cho hướng dẫn này; citation_id, community_note, parent, và quote thì rỗng trong tất cả.
  • Câu hỏi là bề mặt điều khiển, không phải là tham số tìm kiếm. Một câu hỏi định nghĩa đơn giản đã trả về không có cuộc gọi công cụ nào và hai bảng điều khiển rỗng. Các câu hỏi chỉ định Grok tới X đã trả về từ 3 đến 35 bài viết.
  • tool_usages hiển thị truy vấn X mà Grok đã chạy. Mảng ghi lại tên công cụ và các tham số của nó, vì vậy bạn có thể đọc lại chuỗi tìm kiếm chính xác — bao gồm from:, since:, until:, và min_faves: — đã tạo ra những bài viết mà bạn nhận được.
  • Bảng điều khiển không đảm bảo không trùng lặp. Các cuộc gọi công cụ chồng chéo có thể lặp lại bài viết, và tần suất thay đổi theo từng lần thu thập: trong bảy lần thu thập, tỷ lệ trùng lặp dao động từ 0% (18 mục, 18 giá trị post_id riêng biệt) đến 48% (25 mục, 13 riêng biệt). Hãy loại bỏ trùng lặp trước khi bạn đếm bất kỳ thứ gì: hai trong số bảy lần thu thập không có lặp lại, và không có gì trong phản hồi cho bạn biết bạn đã nhận được loại nào.
  • Chế độ lập luận không kiểm soát độ sâu nguồn X. Hai cặp MODEL_MODE_FAST / MODEL_MODE_EXPERT trên một câu hỏi giống hệt nhau đã đảo ngược, vì vậy hãy coi chế độ là một thiết lập lập luận hơn là một núm điều chỉnh âm lượng.
  • Miễn phí để bắt đầu. Các tài khoản Scrapeless mới bao gồm các tín dụng dùng thử miễn phí — đăng ký tại app.scrapeless.com.

Hãy hỏi Grok về những gì mọi người đang đăng tải về một buổi phóng kính thiên văn, và câu trả lời đến với một danh sách các bài viết X bên dưới. Những bài viết đó là bằng chứng mà mô hình đã chọn, và scraper.grok actor Scrapeless trả lại chúng dưới dạng các hàng JSON có tay cầm tác giả, dấu thời gian, số lượt xem và ID bài viết đã được tách thành các trường.

Điều đó khiến Grok trở thành một con đường khác để lấy dữ liệu X so với thông thường. Cách tiếp cận phổ biến thường lấy bài viết từ nền tảng trực tiếp và nhắm đến sự đầy đủ. Hướng dẫn này đề cập đến hướng ngược lại: thu thập các bài viết mà một công cụ trả lời đã chọn để trích dẫn, mà là một mảnh nhỏ hơn và đã được lọc sẵn, cộng với truy vấn mà mô hình đã sử dụng để tìm chúng.

Hướng dẫn này đề cập đến hình dạng yêu cầu, sơ đồ trường chính xác của một trích dẫn X, cách để làm cho bảng điều khiển có dữ liệu thay vì đến rỗng, và mảng tool_usages cho thấy những gì Grok thực sự đã tìm kiếm. Đối với hợp đồng diễn viên chung — phong bì, chế độ, các diễn viên đồng hành — hãy xem hướng dẫn API lấy dữ liệu Grok.


Những gì API Tìm kiếm X của Grok Cung cấp Cho Bạn

Một yêu cầu trả về câu trả lời của Grok cộng với hai bảng điều khiển trích dẫn của nó dưới dạng các mảng riêng biệt. Bảng điều khiển X là phần mà hướng dẫn này đang đề cập.

  • Các hàng cấp bài viết, không phải là một nguồn cấp được hiển thị. Mỗi mục là một đối tượng có post_id ổn định, tay cầm và tên hiển thị của tác giả, văn bản bài viết, dấu thời gian RFC 3339, và số lượt xem dưới dạng một số nguyên.
  • Truy vấn của mô hình, được ghi lại. tool_usages giữ lại tìm kiếm mà Grok đã thực hiện, vì vậy một lần thu thập có thể được tái tạo và kiểm toán thay vì là một hộp đen.
  • Cả hai bảng điều khiển từ một cuộc gọi. Một câu hỏi trải dài qua phản ứng xã hội và tài liệu chính thức trả về bài viết X và các trang open-web trong cùng một payload, đã được tách biệt.
  • Mảnh thời gian. Bởi vì Grok kết hợp các toán tử ngày vào những tìm kiếm X của mình, những câu hỏi mà chỉ định một khoảng thời gian sẽ tạo ra các bài viết bên trong khoảng thời gian đó.
  • Bắt giữ theo tài khoản. Một câu hỏi chỉ định một tài khoản sẽ đi qua một tìm kiếm người dùng X và trả về các bài viết gần đây của tài khoản đó.

Bảng điều khiển là một bộ trích dẫn thay vì một kho lưu trữ hoàn chỉnh. Nó phản ánh những gì một câu trả lời đã dựa vào, điều này phù hợp hơn cho việc theo dõi trích dẫn và lấy mẫu cảm xúc hơn là việc thu thập hoàn toàn.


Điểm cuối, Diễn viên và Tham số

  • Điểm cuối đồng bộ: POST https://api.scrapeless.com/api/v2/scraper/execute — chặn và trả về kết quả hoàn thành.
  • Điểm cuối không đồng bộ: POST https://api.scrapeless.com/api/v2/scraper/request trả về một task_id; GET https://api.scrapeless.com/api/v2/scraper/result/{task_id} trả về kết quả khi nó sẵn sàng.
  • Diễn viên: scraper.grok
  • Tiêu đề xác thực: x-api-token: $SCRAPELESS_API_KEY
trường nhập yêu cầu mô tả
prompt câu hỏi gửi đến Grok; đây là thứ quyết định xem bảng điều khiển X có dữ liệu hay không
country mã quốc gia hai chữ cái cho lối ra cư trú của lần chạy, chẳng hạn như US
mode độ sâu lý luận — MODEL_MODE_FAST hoặc MODEL_MODE_EXPERT

Quá trình ghi lại cho hướng dẫn này kết thúc trong khoảng 16 đến 60 giây. Điểm cuối đồng bộ phù hợp cho một kiểm tra nhanh từ dòng lệnh. Đối với bất kỳ điều gì lập trình, nên ưu tiên cặp không đồng bộ: nó trả lời lệnh gửi với HTTP 201 và một task_id, sau đó trả lại trạng thái 202 Được chấp nhận được định nghĩa trong tài liệu ngữ nghĩa HTTP trong khi tác vụ vẫn đang chạy và 200 với status: "success" khi kết quả đã sẵn sàng. Việc theo dõi sự chuyển tiếp đó là điều khiến một khách hàng trở nên xác định bất kể thời gian của một lời nhắc nhất định là bao lâu.

Giữ khóa trong môi trường thay vì trong mã:

bash Copy
export SCRAPELESS_API_KEY="your_api_token_here"

Ghi Nhận Đầu Tiên

Yêu cầu này đặt tên một tài khoản, đây là cách đáng tin cậy nhất để có được một bảng X đông đúc ngay từ lần thử đầu tiên. Bộ lọc jq in ra hai kích thước bảng và các công cụ mà Grok đã gọi.

bash Copy
curl -sS -X POST https://api.scrapeless.com/api/v2/scraper/execute \
  -H "Content-Type: application/json" \
  -H "x-api-token: ${SCRAPELESS_API_KEY}" \
  -d '{
    "actor": "scraper.grok",
    "input": {
      "prompt": "What has @NASA posted on X recently?",
      "country": "US",
      "mode": "MODEL_MODE_FAST"
    }
  }' | jq '{
    x_posts: (.task_result.x_search_results | length),
    web_pages: (.task_result.web_search_results | length),
    tools: [.task_result.tool_usages[].tool_name]
  }'

Một ghi nhận của yêu cầu đó đã trả về {"x_posts": 20, "web_pages": 0, "tools": ["x_keyword_search", "x_keyword_search"]} — hai mươi bài đăng X, không có trang web mở và hai tìm kiếm từ khóa. Các số đếm di chuyển giữa các lần chạy, vì vậy hãy coi hình dạng như hợp đồng và các số như một mẫu. Nếu x_posts0tools trống, Grok đã trả lời từ kiến thức của chính nó và không tìm kiếm gì — xem làm cho bảng X đông đúc bên dưới.


Sơ Đồ Bài Đăng X, Từng Trường Một

Mỗi mục trong x_search_results là một đối tượng phẳng với cùng mười một khóa. Đây là một ghi nhận thực từ yêu cầu @NASA ở trên:

json Copy
// captured from a live scraper.grok run; a single x_search_results entry
{
  "citation_id": "",
  "community_note": "",
  "create_time": "2026-08-06T11:00:59Z",
  "name": "NASA",
  "parent": null,
  "post_id": "2085320225776427457",
  "profile_image_url": "https://pbs.twimg.com/profile_images/1321163587679784960/0ZxKlEKB_normal.jpg",
  "quote": null,
  "text": "LIVE: Time for a spacewalk! Watch as @Astro_Jessica and @Astro_Anil step outside the @Space_Station to prepare the orbiting lab for a new solar array.",
  "user_name": "NASA",
  "view_count": 714862
}

Trong 167 mục bài đăng được ghi lại cho hướng dẫn này, các trường chia thành hai nhóm rõ ràng:

trường loại đã được điền nội dung của nó
post_id chuỗi luôn luôn định danh bài đăng số, dưới dạng chuỗi; khóa chính tự nhiên
user_name chuỗi luôn luôn tay của tác giả — tên @, không bao gồm @
name chuỗi luôn luôn tên hiển thị của tác giả, thường khác với tay
text chuỗi luôn luôn nội dung bài đăng, bao gồm cả dòng mới, nhắc đến và t.co liên kết ngắn
create_time chuỗi luôn luôn thời gian bài đăng theo định dạng ngày và giờ RFC 3339, UTC, Z-định nghĩa
view_count số nguyên luôn luôn số lần xem dưới dạng số; khoảng quan sát qua các lần ghi nhận là từ 0 đến 6,937,545
profile_image_url chuỗi luôn luôn hình đại diện của tác giả, trên CDN hình ảnh của nền tảng
citation_id chuỗi không bao giờ chuỗi trống trong tất cả 167 mục
community_note chuỗi không bao giờ chuỗi trống trong tất cả 167 mục
parent null không bao giờ null trong tất cả 167 mục
quote null không bao giờ null trong tất cả 167 mục

Bốn trường không bao giờ được điền cần có một lưu ý. Chúng có mặt trong sơ đồ trên mọi mục, vì vậy mã đọc chúng sẽ không gây ra lỗi, nhưng không có gì trong tập hợp ghi nhận này đã lấp đầy chúng. Xây dựng trên bảy trường đã được điền, và coi bốn trường kia như được dự trữ thay vì như một tính năng luồng phản hồi hay Ghi chú Cộng đồng mà bạn có thể phụ thuộc vào.

user_namepost_id cùng nhau tái tạo một URL bài đăng chính thống như https://x.com/<user_name>/status/<post_id>, điều này hữu ích để lưu trữ một liên kết quay lại nguồn.

Nhận khóa API của bạn trên gói miễn phí: app.scrapeless.com


Đọc Truy Vấn Mà Grok Thực Sự Đã Chạy

tool_usages là trường phân tách con đường ghi nhận này khỏi một tìm kiếm X thông thường. Mỗi mục đặt tên một công cụ và mang các đối số của nó dưới dạng một chuỗi JSON, vì vậy bạn có thể đọc lại chính xác những gì đã được tìm kiếm.

python Copy
import json
import os
import time

import requests

BASE = "https://api.scrapeless.com/api/v2/scraper"
HEADERS = {
    "Content-Type": "application/json",
    "x-api-token": os.environ["SCRAPELESS_API_KEY"],
}


def capture(prompt, country="US", mode="MODEL_MODE_FAST"):
    """Submit a Grok capture, then poll until the task_result is ready."""
    submit = requests.post(
        f"{BASE}/request",
        headers=HEADERS,
        json={
            "actor": "scraper.grok",
            "input": {"prompt": prompt, "country": country, "mode": mode},
        },
        timeout=60,
    )
    submit.raise_for_status()
    task_id = submit.json()["task_id"]

    for _ in range(120):
        poll = requests.get(f"{BASE}/result/{task_id}", headers=HEADERS, timeout=60)
        poll.raise_for_status()
        body = poll.json()
        if body.get("status") == "success":
            return body["task_result"]
        time.sleep(5)
    raise TimeoutError(f"task {task_id} did not finish in the allotted window")


result = capture("Search X for posts from:NASA about Artemis since:2026-07-01 and summarize them.")

for call in result.get("tool_usages") or []:
    print(call["tool_name"])
    for key, value in json.loads(call["tool_args"]).items():
        print(f"    {key}: {value}")

print(f"x_search_results: {len(result.get('x_search_results') or [])}")

Lời nhắc đó nhúng hai toán tử tìm kiếm X, và chúng tồn tại trong cuộc gọi công cụ nguyên vẹn:

text Copy
x_keyword_search
    query: from:NASA Artemis since:2026-07-01
    limit: 10
    mode: Latest
x_search_results: 3

Các toán tử bạn viết trong lời nhắc trở thành các toán tử trong truy vấn. Trong các lần ghi nhận, Grok đã kết hợp from:, since:, until:, lang:min_faves: vào các tìm kiếm của nó, cùng với một mode của Top hoặc Latest. Một số trong số đó khớp với tài liệu tham khảo toán tử tìm kiếm được công bố của nền tảng, liệt kê from:lang: cùng với các bộ lọc tương tác; các thời hạn since:until: đến từ giao diện tìm kiếm thay vì tài liệu tham khảo đó. Ba công cụ X khác nhau đã xuất hiện:

| công cụ | đối số được quan sát | công dụng của nó |
| x_keyword_search | query, limit, mode | tìm kiếm theo từ khóa theo điều khiển; mode chọn Top hoặc Latest |
| x_semantic_search | query, limit, from_date, to_date, min_score_threshold | tìm kiếm dựa trên ý nghĩa trong khoảng thời gian |
| x_user_search | query, count | tra cứu tài khoản, được sử dụng khi một lời nhắc nêu tên một tài khoản |

Hai công cụ không phải X chia sẻ mảng: web_search với querynum_results, và open_page với urlstart_line, thứ điền web_search_results thay vì.

Ghi nhật ký tool_usages bên cạnh mọi lần nắm bắt biến một kết quả đã lưu thành thứ mà bạn có thể giải thích sau này — các bài đăng bạn đã giữ lại, và truy vấn đã tìm ra chúng.


Làm cho Bảng X Được Lấp Đầy

Một x_search_results rỗng không phải là điều kiện lỗi. Nó có nghĩa là Grok đã trả lời mà không tìm kiếm X. Sự phân biệt này có thể thấy trong cùng một tải trọng: khi bảng rỗng vì không gì được tìm kiếm, tool_usages cũng rỗng.

Một lời nhắc định nghĩa đơn giản — "Trình duyệt không đầu là gì?" — đã trả về không có cuộc gọi công cụ nào, không có bài đăng X nào và không có trang web nào. Mỗi lời nhắc chỉ vào X đều trả về bài đăng. Được đo lường qua các lần nắm bắt cho hướng dẫn này:

hình dạng lời nhắc bài đăng X trang web công cụ được gọi
câu hỏi định nghĩa đơn giản 0 0 không có
"mọi người đang nói gì trên X về …" 15 0 từ khóa × 2, ngữ nghĩa
"tài khoản @account đã đăng gì trên X gần đây" 10 0 từ khóa, người dùng
"điều gì đang thịnh hành trên X ở …" 10 10 web, ngữ nghĩa, từ khóa
các toán tử rõ ràng, "tìm kiếm X cho từ:… kể từ:…" 3 0 từ khóa
phản ứng xã hội cộng với nguồn chính thức 35 16 web × 2, ngữ nghĩa × 3, từ khóa × 4, mở_cửa_hàng

Ba mẫu lời nhắc đã lấp đầy bảng một cách đáng tin cậy:

  1. Nêu tên nền tảng. "trên X" trong lời nhắc là tín hiệu mạnh mẽ nhất.
  2. Nêu tên một tài khoản. Một tài khoản dẫn qua x_user_search và trả về các bài đăng của tài khoản đó.
  3. Yêu cầu phản ứng, tâm trạng, hoặc thảo luận. Những điều này kéo bài đăng nơi một câu hỏi thực tế sẽ được giải quyết từ web mở.

Hàng cuối cùng làm điều mà những hàng khác không làm. Một lời nhắc yêu cầu cả phản ứng xã hội và nguồn chính thức lấp đầy cả hai bảng, vì vậy một cuộc gọi trả về những gì mọi người đang đăng bên cạnh những gì nguồn chính nói.


Xử Lý Đầu Ra Có Cấu Trúc Trong Python

Bảng cần một biến đổi trước khi nó có thể sử dụng: loại bỏ trùng lặp. Các cuộc gọi công cụ chồng chéo có thể trả về cùng một bài đăng nhiều hơn một lần, vì vậy độ dài mảng là một giới hạn trên số bài đăng khác nhau thay vì một thống kê về chúng. Một số lần nắm bắt trả về mà không có mục nào lặp lại; những lần khác lặp lại gần một nửa các mục nhập của chúng. Vì bạn không thể biết bạn nhận được cái nào mà không kiểm tra, hãy loại bỏ trùng lặp một cách không điều kiện.

python Copy
import json
import os
import time

import requests

BASE = "https://api.scrapeless.com/api/v2/scraper"
HEADERS = {
    "Content-Type": "application/json",
    "x-api-token": os.environ["SCRAPELESS_API_KEY"],
}


def capture(prompt, country="US", mode="MODEL_MODE_FAST"):
    """Submit a Grok capture, then poll until the task_result is ready."""
    submit = requests.post(
        f"{BASE}/request",
        headers=HEADERS,
        json={
            "actor": "scraper.grok",
            "input": {"prompt": prompt, "country": country, "mode": mode},
        },
        timeout=60,
    )
    submit.raise_for_status()
    task_id = submit.json()["task_id"]
    print(f"submitted task_id={task_id}")

    for _ in range(120):
        poll = requests.get(f"{BASE}/result/{task_id}", headers=HEADERS, timeout=60)
        poll.raise_for_status()
        body = poll.json()
        if body.get("status") == "success":
            return body["task_result"]
        time.sleep(5)
    raise TimeoutError(f"task {task_id} did not finish in the allotted window")


def x_rows(task_result):
    """Flatten x_search_results into unique rows keyed by post_id."""
    seen, rows = set(), []
    for post in task_result.get("x_search_results") or []:
        post_id = post.get("post_id")
        if not post_id or post_id in seen:
            continue
        seen.add(post_id)
        handle = post.get("user_name") or ""
        rows.append(
            {
                "post_id": post_id,
                "handle": handle,
                "display_name": post.get("name") or "",
                "posted_at": post.get("create_time") or "",
                "views": post.get("view_count") or 0,
                "text": " ".join((post.get("text") or "").split()),
                "url": f"https://x.com/{handle}/status/{post_id}",
            }
        )
    return rows


result = capture("What are people saying on X about the James Webb Space Telescope this week?")
rows = x_rows(result)

raw_count = len(result.get("x_search_results") or [])
print(f"raw={raw_count} unique={len(rows)}")

for row in sorted(rows, key=lambda r: r["views"], reverse=True)[:3]:
    print(f"@{row['handle']} · {row['posted_at']} · {row['views']:,} views")
    print(f"  {row['text'][:100]}")
    print(f"  {row['url']}")

print(json.dumps(rows[:1], ensure_ascii=False, indent=2))

x_rows trả về chính xác hình dạng mà một bảng hoặc tập hợp cột kho muốn: một hàng cho mỗi bài đăng khác biệt, một URL có thể giải quyết, và một số lượng xem là số nguyên mà bạn có thể sắp xếp. Danh sách này là các từ điển có thể tuần tự hóa thành JSON đơn giản, vì vậy nó sẽ chuyển thẳng vào một DataFrame hoặc một câu lệnh chèn.

Sắp xếp theo views trước khi bạn lấy mẫu thường là động thái đúng đắn, vì bảng trộn lẫn các tài khoản rất lớn với rất nhỏ — khoảng quan sát trong một tập hợp nắm bắt chạy từ 0 đến gần 7 triệu lượt xem trên cùng một lời nhắc.


Các Vấn Đề Hình Dạng Dữ Liệu Thông Thường

  • Độ dài mảng không phải là số lượng bài đăng. Loại bỏ trùng lặp trên post_id trước khi đếm hoặc vẽ biểu đồ. Được đo lường qua bảy nắm bắt: 15 mục / 13 mục duy nhất, 35 / 29, 34 / 31, 25 / 13, 15 / 14, và hai lần nắm bắt không lặp lại gì cả (10 / 10 và 18 / 18). Tỷ lệ trùng lặp không đủ ổn định để dự đoán — hãy xây dựng bước loại bỏ trùng lặp bất kể, vì một số lượng tỷ lệ tiếng nói dựa trên độ dài thô phóng đại mọi tài khoản mà hai cuộc gọi công cụ đều hiện ra.
  • Bốn trường hiện diện cấu trúc nhưng luôn rỗng. citation_id, community_note, parent, và quote xuất hiện trên mỗi mục nhập và đều rỗng trong tất cả 167. Đừng thiết kế một tính năng phản hồi hay Ghi Chú Cộng Đồng xung quanh chúng mà không xác nhận rằng chúng được lấp đầy cho các lời nhắc của bạn.
  • view_count là một số nguyên, post_id là một chuỗi. Các định danh bài đăng được quan sát ở đây chạy vượt quá 2×10^18, vượt quá phạm vi mà một số thực độ chính xác gấp đôi đại diện chính xác — đây là lý do tại sao hướng dẫn về khả năng tương tác số của đặc tả JSON cảnh báo về việc không dựa vào độ chính xác số trên các triển khai. Giữ post_id dưới dạng văn bản từ đầu đến cuối; việc chuyển đổi nó thành một số thực là cách mà các ID bài đăng thay đổi giá trị một cách âm thầm.
  • Chế độ không phải là một núm âm lượng. Hai cặp FAST / EXPERT trên một prompt giống hệt đã trả về 15 so với 20 bài đăng, sau đó là 25 so với 15 — thứ tự đã đảo ngược. Kích thước bảng điều khiển khác nhau nhiều hơn giữa hai lần chạy cùng một cài đặt hơn là giữa các cài đặt. Giữ chế độ không thay đổi qua một loạt được theo dõi để đảm bảo tính nhất quán phương pháp, không phải vì điều đó đảm bảo nguồn sâu hơn.
  • Cùng một prompt trả về một bảng điều khiển khác nhau mỗi lần chạy. Grok tái cấu trúc truy vấn của nó mỗi lần chạy, vì vậy từ ngữ trôi dạt và tập kết quả cũng vậy. Đọc một loạt thay vì một lần ghi lại, và lưu tool_usages để bạn có thể thấy những lần chạy nào đã đặt câu hỏi khác nhau.
  • Các bảng điều khiển được lấp đầy độc lập. Một prompt có thể lấp đầy bảng điều khiển X và để web_search_results trống, hoặc lấp đầy cả hai. Kiểm tra chiều dài của từng mảng một cách riêng biệt thay vì giả định cái này ám chỉ cái kia.

Kết luận

Bảng điều khiển X trong một lần ghi lại của Grok là một tập dữ liệu nhỏ, được nhập loại tốt ngồi bên trong một tải trọng câu trả lời. Một POST đến scraper.grok với một prompt tên X trả về ID bài đăng, tên người dùng, tên hiển thị, văn bản bài đăng, dấu thời gian UTC và số lượt xem dưới dạng JSON phẳng — bảy trường đã được lấp đầy trong mọi mục đã ghi lại cho hướng dẫn này. Khử trùng trên post_id, giữ nhận dạng như một chuỗi, và ghi lại tool_usages để mỗi hàng được lưu trữ mang theo truy vấn đã tìm thấy nó. Kết quả bao quát một phần hẹp của nền tảng thay vì một kho lưu trữ của nó: các bài đăng mà một công cụ trả lời đánh giá là đáng trích dẫn, với tìm kiếm đã lộ diện chúng gắn liền.

Bắt đầu Ghi lại Các Trích dẫn X Từ Các Câu Trả Lời của Grok

Tham gia cộng đồng của chúng tôi để nhận một gói miễn phí và so sánh ý kiến với các nhà phát triển đang xây dựng các đường ống trả lời-engine: Discord · Telegram.

Đăng ký tại app.scrapeless.com để nhận tín dụng dùng thử miễn phí, sau đó chỉ định scraper.grok vào các tài khoản, chủ đề, và cửa sổ mà chương trình giám sát của bạn theo dõi. Trang Universal Scraping API đề cập đến gia đình diễn viên lớn hơn, và các bậc sử dụng hiện tại có trên trang pricing.

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

Q: Tại sao x_search_results trống trong yêu cầu của tôi?

Bởi vì Grok đã trả lời mà không tìm kiếm X. Kiểm tra tool_usages trong cùng một tải trọng: nếu nó cũng trống, thì không có tìm kiếm nào được thực hiện. Các prompt đặt tên nền tảng ("trên X"), tên một tài khoản, hoặc hỏi về phản hồi và thảo luận đã lấp đầy bảng điều khiển trong mọi lần ghi lại cho hướng dẫn này, trong khi một câu hỏi định nghĩa đơn giản trả về không công cụ và không bài đăng nào.

Q: Mỗi bài đăng X thực sự chứa những trường gì?

Mười một khóa, có mặt trong mọi mục. Bảy khóa đã được lấp đầy trong tất cả 167 mục ghi lại ở đây: post_id, user_name, name, text, create_time, view_count, và profile_image_url. Bốn khóa còn lại — citation_id, community_note, parent, và quote — đều trống trong mọi trường hợp.

Q: Tôi có thể kiểm soát bài đăng X nào mà Grok tìm kiếm không?

Có, thông qua prompt. Các toán tử tìm kiếm được ghi vào prompt sẽ lan truyền vào truy vấn mà Grok thực hiện: một prompt chứa from:NASAsince:2026-07-01 đã sản xuất cuộc gọi công cụ query: from:NASA Artemis since:2026-07-01. Đọc tool_usages sau mỗi lần chạy để xác nhận những gì đã được tìm kiếm.

Q: Làm thế nào tôi có thể xây dựng lại một liên kết tới bài đăng gốc?

Kết hợp hai trường luôn được lấp đầy: https://x.com/<user_name>/status/<post_id>. Giữ post_id như một chuỗi — nó đủ dài để mất độ chính xác nếu một trình phân tích JSON đọc nó như một số thực.

Q: MODEL_MODE_EXPERT có trả về nhiều bài đăng X hơn MODEL_MODE_FAST không?

Không một cách đáng tin cậy. Hai lần chạy kết hợp trên một prompt giống hệt đã trả về 15 bài đăng dưới FAST và 20 dưới EXPERT, sau đó là 25 dưới FAST và 15 dưới EXPERT. Biến động từ lần chạy này sang lần chạy khác lớn hơn sự khác biệt giữa các chế độ. Chọn một chế độ và giữ ổn định để một loạt được theo dõi vẫn có thể so sánh.

Q: Sự khác biệt giữa việc thu thập bài đăng từ nền tảng trực tiếp là gì?

Phạm vi và lựa chọn. Con đường này trả về các bài đăng mà một câu trả lời đã trích dẫn — một mẫu được lọc biên tập, thường là từ 3 đến 35 bài đăng, với truy vấn của mô hình kèm theo. Việc thu thập trực tiếp nhắm đến sự đầy đủ thay vào đó. Sử dụng điều này khi câu hỏi là những gì mà một công cụ trả lời đã lộ diện và ghi nhận; sử dụng một lộ trình thu thập dành riêng khi bạn cần sự bao phủ toàn diện của một hashtag hoặc tài khoản.

Q: Tôi nên nhớ điều gì về dữ liệu bài đăng bản thân?
Nội dung bài viết và tên tác giả là thông tin công khai được viết bởi những người thực, vì vậy hãy coi việc lưu trữ thông tin như một tập dữ liệu về cá nhân. Giữ cho việc thu thập dữ liệu có giới hạn và có mục đích, chỉ giữ lại các trường cần thiết cho phân tích của bạn, và kiểm tra xem Quy định Chung về Bảo vệ Dữ liệu của EU hoặc một chế độ tương tự có áp dụng cho việc sử dụng của bạn không, đặc biệt là trước khi công bố lại nội dung bài viết hoặc hình ảnh hồ sơ. Điều khoản nền tảng điều chỉnh việc tái sử dụng một cách độc lập với luật bảo vệ dữ liệu; hãy xem xét cả hai và tham khảo ý kiến ​​luật sư cho trường hợp cụ thể của bạn.

Q: Tôi có cần một proxy không?

Không. Kết nối home pin theo quốc gia được tích hợp trong diễn viên, và đầu vào cần thiết country là toàn bộ cấu hình.

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