ไม่ต้อง KYC — ไม่ต้องใช้บัตรประชาชน ไม่ต้องเซลฟี่ ไม่ต้องใช้เอกสาร จ่ายด้วยคริปโต: BTC, USDT, USDC, ETH, SOL, LTC
ภาษา: ไทย
รับ API key

คู่มือ · Python · โค้ดที่ทดสอบแล้ว · ณ ตุลาคม 2026

วิธีรับผลการค้นหา Google ใน Python (2026)

การดึง google.com ด้วย requests หมดทางเลือกไปตั้งแต่ปี 2025 คู่มือนี้อธิบายสาเหตุ แล้วให้โค้ด Python สั้น ๆ ที่ตรวจสอบไวยากรณ์แล้ว ซึ่งได้ผลลัพธ์เดียวกันเป็น JSON ผ่าน SERP API

อัปเดตล่าสุด: · 3 นาทีในการอ่าน

คำตอบสั้น

ฉันจะรับผลการค้นหา Google ใน Python ปี 2026 ได้อย่างไร?

เรียก SERP API จาก Python แล้วอ่าน JSON ที่คืนมา อย่าดึง google.com เอง เพราะ Google กำหนดให้ใช้ JavaScript ตั้งแต่ 17 มกราคม 2025 และ robots.txt ของ Google ห้าม /search ด้วย SerpCrypto หนึ่ง requests.get ถึง https://serpcrypto.com/api/v1/search คืนผลลัพธ์ออร์แกนิก, People Also Ask และอื่น ๆ ด้วยเครดิตหนึ่งเครดิตต่อการค้นหา เริ่มต้นที่ US$0.30/1K การค้นหา ณ ตุลาคม 2026 ไม่ต้อง KYC จ่ายด้วยคริปโต

สิ่งที่คุณต้องมี

Python3.9 ขึ้นไป
แพ็กเกจrequests สำหรับพื้นฐาน; pandas สำหรับตาราง; httpx สำหรับ async
API keyจากแดชบอร์ด SerpCrypto ของคุณ เก็บไว้ใน environment variable SERPCRYPTO_API_KEY
EndpointGET https://serpcrypto.com/api/v1/search
ค่าใช้จ่าย1 เครดิต = 1 คำขอค้นหาที่สำเร็จ ซึ่งคืนผลลัพธ์หนึ่งหน้าบนเอนจินที่รองรับ คำขอที่ล้มเหลวจะไม่ถูกคิดเครดิต
แพ็กที่เล็กที่สุด10,000 การค้นหา สำหรับ US$7.50; เครดิตไม่มีวันหมดอายุ

ทำไม requests.get บน google.com ถึงใช้ไม่ได้อีกต่อไป?

เพราะผลลัพธ์ไม่ได้อยู่ใน HTML ที่ HTTP client ธรรมดาได้รับอีกต่อไป เมื่อวันที่ 17 มกราคม 2025 Google เริ่มกำหนดให้ใช้ JavaScript สำหรับ Search โดยระบุว่า JavaScript ช่วยปกป้องบริการจากบอต และมีการค้นหาน้อยกว่า 0.1% ที่มาจากผู้ใช้ที่ปิด JavaScript ตามที่ TechCrunch รายงาน

robots.txt ของ Google ที่อ่านเมื่อ 22 ตุลาคม 2026 ยังระบุ Disallow: /search สำหรับ user agent ทั้งหมดด้วย SERP API จัดการการรันการค้นหาและการแยกวิเคราะห์หน้าเว็บให้ และโค้ด Python ของคุณจัดการเฉพาะ JSON นั่นคือแนวทางที่ใช้ในส่วนที่เหลือของคู่มือนี้

ฉันจะส่งคำขอแรกได้อย่างไร?

ติดตั้ง requests ใส่คีย์ของคุณใน environment variable แล้วส่งคำค้นหาพร้อมประเทศและภาษา response เป็น dictionary ที่มีหนึ่งคีย์ต่อหนึ่งบล็อกของหน้าผลการค้นหา organic_results เก็บลิงก์ที่จัดอันดับแล้ว

เก็บคีย์ไว้นอกซอร์สโค้ดของคุณ บน macOS และ Linux ใช้ export SERPCRYPTO_API_KEY=... ในเชลล์; บน Windows PowerShell ใช้ $env:SERPCRYPTO_API_KEY="..."

คำขอแรกด้วย requests
import os

import requests

API = "https://serpcrypto.com/api/v1/search"
KEY = os.environ["SERPCRYPTO_API_KEY"]

resp = requests.get(
    API,
    headers={"Authorization": "Bearer " + KEY},
    params={"engine": "google", "q": "best hiking boots", "gl": "us", "hl": "en"},
    timeout=60,
)
resp.raise_for_status()
results = resp.json()

for item in results.get("organic_results", []):
    print(item["position"], item["title"])
    print("   ", item["link"])

for q in results.get("people_also_ask", []):
    print("PAA:", q["question"])

ฉันจะแปลงผลลัพธ์เป็น pandas DataFrame ได้อย่างไร?

สร้างหนึ่งแถวต่อหนึ่งผลลัพธ์ออร์แกนิกและเก็บคำค้นหาไว้ข้าง ๆ DataFrame ทำให้จัดเรียง กรองตามโดเมน หรือส่งออกเป็น CSV และ Excel ได้ง่าย ฟิลด์ที่หายไป เช่น date ในผลลัพธ์ส่วนใหญ่ จะกลายเป็นเซลล์ว่างแทนที่จะเกิดข้อผิดพลาด

หลายคำค้นหาใน DataFrame เดียว
import os
from urllib.parse import urlparse

import pandas as pd
import requests

API = "https://serpcrypto.com/api/v1/search"
HEADERS = {"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]}


def organic_rows(query, gl="us", hl="en"):
    params = {"engine": "google", "q": query, "gl": gl, "hl": hl}
    resp = requests.get(API, headers=HEADERS, params=params, timeout=60)
    resp.raise_for_status()
    for r in resp.json().get("organic_results", []):
        yield {
            "query": query,
            "position": r.get("position"),
            "title": r.get("title"),
            "domain": urlparse(r.get("link", "")).netloc,
            "link": r.get("link"),
            "snippet": r.get("snippet"),
        }


queries = ["crm for small business", "invoice software", "time tracking app"]
df = pd.DataFrame([row for q in queries for row in organic_rows(q)])
print(df.groupby("domain").size().sort_values(ascending=False).head(10))
df.to_csv("serp_results.csv", index=False)

ฉันจะรันการค้นหาหลายรายการพร้อมกันได้อย่างไร?

ใช้ httpx ร่วมกับ asyncio และจำกัดจำนวนคำขอที่ทำงานอยู่พร้อมกันด้วย semaphore บัญชีของคุณมีขีดจำกัดการทำงานพร้อมกัน ซึ่งแสดงอยู่ในแดชบอร์ด การอยู่ใต้ขีดจำกัดนี้ช่วยหลีกเลี่ยงข้อผิดพลาด 429 เริ่มจากจำนวนน้อยๆ เช่น 5 แล้วตั้งให้เท่ากับขีดจำกัดที่แดชบอร์ดแสดง

การค้นหาแบบ async ด้วย httpx และ semaphore
import asyncio
import os

import httpx

API = "https://serpcrypto.com/api/v1/search"
HEADERS = {"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]}
LIMIT = asyncio.Semaphore(5)


async def search(client, query):
    async with LIMIT:
        resp = await client.get(API, params={"engine": "google", "q": query, "gl": "us", "hl": "en"})
        resp.raise_for_status()
        data = resp.json()
        top = data.get("organic_results", [])[:3]
        return query, [r["link"] for r in top]


async def main(queries):
    async with httpx.AsyncClient(headers=HEADERS, timeout=60) as client:
        for query, links in await asyncio.gather(*(search(client, q) for q in queries)):
            print(query, links)


if __name__ == "__main__":
    asyncio.run(main(["python web framework", "python orm", "python task queue"]))

ฉันจะได้ผลลัพธ์มากกว่า 10 รายการและบันทึกไว้ได้อย่างไร?

ขอหน้าถัดไปด้วย page=2, page=3 และอื่นๆ ไปจนถึง page=10 แต่ละหน้าเป็นการค้นหาหนึ่งครั้งและใช้หนึ่งเครดิต เพราะ Google แสดงผลลัพธ์แบบ organic ประมาณ 10 รายการต่อหน้า ตั้งแต่เลิกทำตาม num=100 ในเดือนกันยายน 2025

บันทึก raw response แต่ละรายการเป็นหนึ่งบรรทัดในไฟล์ JSONL ข้อมูล JSON ดิบเก็บทุกบล็อกไว้ จึงตอบคำถามใหม่ในภายหลังได้โดยไม่ต้องจ่ายซ้ำสำหรับการค้นหาเดิม

หน้า 1 ถึง 3 ที่บันทึกเป็น JSONL
import json
import os

import requests

API = "https://serpcrypto.com/api/v1/search"
HEADERS = {"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]}


def fetch_pages(query, pages=3, path="serp.jsonl"):
    with open(path, "a", encoding="utf-8") as out:
        for page in range(1, pages + 1):
            params = {"engine": "google", "q": query, "gl": "us", "hl": "en", "page": page}
            resp = requests.get(API, headers=HEADERS, params=params, timeout=60)
            resp.raise_for_status()
            data = resp.json()
            out.write(json.dumps(data, ensure_ascii=False) + "\n")
            if not data.get("organic_results"):
                break


fetch_pages("electric cargo bike", pages=3)

การรันโค้ดนี้มีค่าใช้จ่ายเท่าไร?

การเรียกแต่ละครั้งในตัวอย่างเหล่านี้คือการค้นหาหนึ่งครั้ง ตัวอย่างแรกใช้หนึ่งเครดิต ตัวอย่าง DataFrame ใช้สาม และตัวอย่าง JSONL ใช้ไม่เกินสาม คำขอที่ล้มเหลวจะไม่ถูกคิดเงิน

10,000 การค้นหา ราคา US$7.50 และ 100,000 การค้นหา ราคา US$56.25 ณ เดือนตุลาคม 2026 อัตราจะลดลงเหลือ US$0.30/1K การค้นหา ที่ 5,000,000 การค้นหา เครดิตไม่มีวันหมดอายุ คุณจ่ายด้วย BTC, USDT, USDC, ETH, SOL, LTC จากการเติมเงิน US$25 โดยไม่ต้องอัปโหลดบัตรประชาชน ดู ราคา

ผลการค้นหา Google ด้วย Python: คำถามที่พบบ่อย

ฉันใช้ BeautifulSoup กับหน้าผลการค้นหาของ Google ได้ไหม?

ไม่น่าเชื่อถือ Google บังคับใช้ JavaScript ตั้งแต่เดือนมกราคม 2025 ดังนั้น HTML ที่ไคลเอนต์ธรรมดาได้รับจึงไม่มีผลลัพธ์อยู่ และ robots.txt ของ Google ไม่อนุญาต /search SERP API จะคืนค่าฟิลด์ที่แยกวิเคราะห์แล้วเป็น JSON แทน

มีไลบรารี Python อย่างเป็นทางการสำหรับ SerpCrypto ไหม?

ไม่มี API เป็น endpoint แบบ HTTPS ธรรมดา ดังนั้นคุณใช้เพียง requests หรือ httpx ก็พอ ตัวอย่างในหน้านี้และใน หน้าเอกสาร Python เป็นโค้ดที่คัดลอกไปใช้ได้ ไม่ใช่แพ็กเกจที่เผยแพร่แล้ว

ฉันจะได้ผลลัพธ์สำหรับประเทศอื่นได้อย่างไร?

ตั้ง gl เป็นรหัสประเทศ และ hl เป็นภาษา ตัวอย่างเช่น gl=fr และ hl=fr สำหรับฝรั่งเศส เพิ่ม location สำหรับเมือง หน้า locations แสดงรหัสที่ใช้บ่อย

ฉันจะจัดการกับข้อผิดพลาดและการลองใหม่ได้อย่างไร?

เรียก raise_for_status() แล้วลองใหม่เมื่อได้รับการตอบกลับ 429, 502 และ 504 หลังจากหน่วงเวลาที่เพิ่มขึ้น คำขอที่ล้มเหลวจะไม่ถูกคิดเงิน หน้า errors มีฟังก์ชันลองใหม่แบบครบถ้วน

ฉันจะได้ผลลัพธ์จาก Bing ด้วยโค้ดเดียวกันได้ไหม?

ได้ เปลี่ยน engine เป็น bing รูปแบบการตอบกลับยังคงเหมือนเดิม ด้วย organic_results และ related_searches

แหล่งที่มา (3)
  1. Google เริ่มกำหนดให้ใช้ JavaScript สำหรับ Google Search — TechCrunch (2025-01-17)
  2. robots.txt ของ google.com — Google (read 2026-10-22)
  3. Google บังคับให้ตัวติดตามอันดับต้องใช้ 500 ถึง 1,000 คำขอต่อหนึ่งคำค้นหา — PPC Land (2026-08-27)

เริ่มต้นที่ US$0.30/1K การค้นหา · ไม่ต้อง KYC

รับ API key