AnyCrawl

โหมด JSON

ดึงข้อมูลมีโครงสร้างจากหน้าเว็บด้วย LLM พร้อมการตรวจสอบ JSON schema

บทนำ

โหมด JSON ช่วยให้คุณดึงข้อมูลมีโครงสร้างจากหน้าเว็บใดก็ได้ด้วยโมเดลภาษาขนาดใหญ่ (LLM)

AnyCrawl ให้คุณกำหนด JSON schema และพรอมต์เพื่อกำหนดกระบวนการดึงข้อมูล ให้ผลลัพธ์ตรงกับรูปแบบที่ต้องการ

ตัวอย่างการใช้งาน

โหมด JSON รองรับการดึงข้อมูลแบบมีโครงสร้างสามแบบ:

  1. เฉพาะพรอมต์: ใช้พรอมต์ภาษาธรรมชาติอธิบายสิ่งที่ต้องการดึง LLM เป็นผู้กำหนดโครงสร้างผลลัพธ์
  2. เฉพาะ Schema: กำหนด JSON schema เพื่อจำกัดโครงสร้างผลลัพธ์อย่างเข้มงวด LLM เป็นผู้เติมเนื้อหา
  3. พรอมต์ + Schema: ผสม schema กับพรอมต์เพื่อควบคุมโครงสร้างและเนื้อหาอย่างแม่นยำ

เคล็ดลับ: ตั้ง extract_source เพื่อควบคุมว่าการดึงแบบมีโครงสร้างจะอ่านจาก markdown ที่สร้างขึ้นหรือ html ต้นฉบับ ค่าเริ่มต้นคือ markdown ใช้ html เมื่อ markdown สูญเสียโครงสร้างสำคัญ

สำคัญ: ต้องใส่ "json" ใน formats เมื่อใช้ json_options มิฉะนั้นการตอบกลับจะไม่มีข้อมูล JSON ที่ดึงแล้ว


1. เฉพาะพรอมต์ (โครงสร้างยืดหยุ่น)

ขั้นตอน:

  1. ตั้ง URL ของหน้าเป้าหมาย
  2. เขียนพรอมต์อธิบายข้อมูลที่ต้องการดึง
  3. ส่งคำขอ
curl -X POST "https://api.anycrawl.dev/v1/scrape" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "formats": ["json"],
    "json_options": {
      "user_prompt": "Extract the company mission, open source status, and employee count."
    }
  }'

2. เฉพาะ Schema (โครงสร้างเข้มงวด)

ขั้นตอน:

  1. ตั้ง URL ของหน้าเป้าหมาย
  2. กำหนด JSON schema สำหรับฟิลด์และชนิดที่ต้องการ
  3. ส่งคำขอ
curl -X POST "https://api.anycrawl.dev/v1/scrape" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "formats": ["json"],
    "json_options": {
      "schema": {
        "type": "object",
        "properties": {
          "company_mission": { "type": "string" },
          "is_open_source": { "type": "boolean" },
          "employee_count": { "type": "number" }
        },
        "required": ["company_mission"]
      }
    }
  }'

3. พรอมต์ + Schema (โครงสร้างและเนื้อหาแบบมีแนวทาง)

ขั้นตอน:

  1. ตั้ง URL ของหน้าเป้าหมาย
  2. กำหนด JSON schema สำหรับโครงสร้างผลลัพธ์
  3. เขียนพรอมต์เพื่อกำหนดการดึงข้อมูล
  4. ส่งคำขอ
curl -X POST "https://api.anycrawl.dev/v1/scrape" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "formats": ["json"],
    "json_options": {
      "schema": {
        "type": "object",
        "properties": {
          "company_mission": { "type": "string" },
          "is_open_source": { "type": "boolean" },
          "employee_count": { "type": "number" }
        },
        "required": ["company_mission"]
      },
      "user_prompt": "Extract the company mission (string), open source status (boolean), and employee count (number)."
    }
  }'

อ็อบเจ็กต์ json_options

พารามิเตอร์ json_options เป็นอ็อบเจ็กต์ที่รับพารามิเตอร์ดังนี้:

  • schema: schema ที่ใช้ในการดึงข้อมูล
  • user_prompt: พรอมต์ผู้ใช้สำหรับการดึงข้อมูล
  • schema_name: ชื่อของผลลัพธ์ที่ต้องการสร้าง (ไม่บังคับ)
  • schema_description: คำอธิบายของผลลัพธ์ที่ต้องการสร้าง (ไม่บังคับ)

JSON Schema

schema สำหรับการดึงข้อมูล ฟิลด์ทั่วไปได้แก่:

  • type: ชนิดของค่า ชนิดที่รองรับแสดงด้านล่าง
  • properties: (สำหรับ object) อ็อบเจ็กต์ที่ระบุฟิลด์และ schema ของแต่ละฟิลด์
  • required: (สำหรับ object) อาร์เรย์ของชื่อฟิลด์ที่จำเป็น

ชนิดที่รองรับ

ชนิดคำอธิบายตัวอย่าง
stringข้อความชื่อบริษัท คำอธิบาย หัวข้อ
numberค่าตัวเลขราคา จำนวน คะแนน
booleanค่าจริง/เท็จแฟล็กความพร้อม ตัวบ่งชี้ฟีเจอร์
objectโครงสร้างซ้อนรายละเอียดที่อยู่ สเปกสินค้า
arrayรายการค่าหรืออ็อบเจ็กต์แท็ก หมวดหมู่ รายการฟีเจอร์

ตัวอย่าง Schema

{
    "type": "object",
    "properties": {
        "company_name": {
            "type": "string"
        },
        "is_open_source": {
            "type": "object",
            "properties": {
                "answer": {
                    "type": "string"
                },
                "value": {
                    "type": "boolean"
                }
            }
        },
        "employee_count": {
            "type": "number"
        }
    },
    "required": ["company_name"]
}

เอกสารที่เกี่ยวข้อง

  • Scrape API - การดึงข้อมูลพื้นฐานพร้อมการดึง JSON
  • Crawl API - การครอลพร้อมตัวเลือกการดึง JSON
  • ระบบเทมเพลต - เทมเพลตการดึงข้อมูลขั้นสูง