
Emma Foster
Machine Learning Engineer
Geziyor là một khung web scraping hiện đại cho Go, được thiết kế để cung cấp các công cụ mạnh mẽ cho việc scraping các trang web và trích xuất dữ liệu một cách hiệu quả. Không giống như nhiều thư viện scraping truyền thống, Geziyor nhấn mạnh sự dễ sử dụng đồng thời cung cấp các luồng công việc scraping có thể tùy chỉnh cao.
Để sử dụng Geziyor, hãy đảm bảo bạn có:
Để cài đặt Geziyor, bạn có thể chạy:
go get -u github.com/geziyor/geziyor
Đây là một ví dụ đơn giản để scraping một trang web và in các tiêu đề của bài viết:
package main
import (
"github.com/geziyor/geziyor"
"github.com/geziyor/geziyor/client"
"github.com/PuerkitoBio/goquery"
"log"
)
func main() {
geziyor.NewGeziyor(&geziyor.Options{
StartURLs: []string{"https://news.ycombinator.com"},
ParseFunc: func(g *geziyor.Geziyor, r *client.Response) {
r.HTMLDoc.Find(".storylink").Each(func(i int, s *goquery.Selection) {
log.Println(s.Text())
})
},
}).Start()
}
Đôi khi, bạn cần mô phỏng tương tác phức tạp hơn với máy chủ, chẳng hạn như đăng nhập hoặc tương tác với các trang web động. Trong ví dụ này, chúng tôi sẽ trình bày cách gửi tiêu đề tùy chỉnh và yêu cầu POST.
package main
import (
"github.com/geziyor/geziyor"
"github.com/geziyor/geziyor/client"
"log"
)
func main() {
geziyor.NewGeziyor(&geziyor.Options{
StartRequestsFunc: func(g *geziyor.Geziyor) {
g.Do(&client.Request{
Method: "POST",
URL: "https://httpbin.org/post",
Body: []byte(`{"username": "test", "password": "123"}`),
Headers: map[string]string{
"Content-Type": "application/json",
},
})
},
ParseFunc: func(g *geziyor.Geziyor, r *client.Response) {
log.Println(string(r.Body))
},
}).Start()
}
Bạn có thể cần quản lý cookie hoặc duy trì phiên trong quá trình scraping. Geziyor đơn giản hóa việc quản lý cookie bằng cách tự động xử lý cookie cho mỗi yêu cầu, và bạn cũng có thể tùy chỉnh quy trình xử lý cookie nếu cần.
package main
import (
"github.com/geziyor/geziyor"
"github.com/geziyor/geziyor/client"
"log"
)
func main() {
geziyor.NewGeziyor(&geziyor.Options{
StartRequestsFunc: func(g *geziyor.Geziyor) {
g.Do(&client.Request{
URL: "https://httpbin.org/cookies/set?name=value",
})
},
ParseFunc: func(g *geziyor.Geziyor, r *client.Response) {
log.Println("Cookies:", r.Cookies())
},
}).Start()
}
Để scraping một trang web trong khi tránh các hạn chế hoặc chặn IP, bạn có thể định tuyến các yêu cầu của mình thông qua một proxy. Đây là cách cấu hình hỗ trợ proxy với Geziyor:
package main
import (
"github.com/geziyor/geziyor"
"github.com/geziyor/geziyor/client"
"log"
)
func main() {
geziyor.NewGeziyor(&geziyor.Options{
StartRequestsFunc: func(g *geziyor.Geziyor) {
g.Do(&client.Request{
URL: "https://httpbin.org/ip",
Proxy: "http://username:password@proxyserver:8080",
})
},
ParseFunc: func(g *geziyor.Geziyor, r *client.Response) {
log.Println(string(r.Body))
},
}).Start()
}
Mặc dù Geziyor không giải quyết captcha một cách bản địa, bạn có thể tích hợp nó với dịch vụ giải quyết captcha như CapSolver. Đây là cách bạn có thể sử dụng CapSolver để giải quyết captcha kết hợp với Geziyor.
Đầu tiên, bạn cần tích hợp CapSolver và xử lý các yêu cầu đối với các thách thức captcha.
package main
import (
"encoding/json"
"github.com/geziyor/geziyor"
"github.com/geziyor/geziyor/client"
"log"
"time"
)
const CAPSOLVER_KEY = "YourKey"
func createTask(url, key string) (string, error) {
payload := map[string]interface{}{
"clientKey": CAPSOLVER_KEY,
"task": map[string]interface{}{
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": url,
"websiteKey": key,
},
}
response, err := client.NewRequest().
Method("POST").
URL("https://api.capsolver.com/createTask").
JSON(payload).
Do()
if err != nil {
return "", err
}
var result map[string]interface{}
json.Unmarshal(response.Body, &result)
return result["taskId"].(string), nil
}
func getTaskResult(taskId string) (string, error) {
payload := map[string]interface{}{
"clientKey": CAPSOLVER_KEY,
"taskId": taskId,
}
for {
response, err := client.NewRequest().
Method("POST").
URL("https://api.capsolver.com/getTaskResult").
JSON(payload).
Do()
if err != nil {
return "", err
}
var result map[string]interface{}
json.Unmarshal(response.Body, &result)
if result["status"] == "ready" {
return result["solution"].(string), nil
}
time.Sleep(5 * time.Second)
}
}
func main() {
geziyor.NewGeziyor(&geziyor.Options{
StartRequestsFunc: func(g *geziyor.Geziyor) {
taskId, _ := createTask("https://example.com", "6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf")
solution, _ := getTaskResult(taskId)
g.Do(&client.Request{
Method: "POST",
URL: "https://example.com/submit",
Body: []byte(`g-recaptcha-response=` + solution),
})
},
ParseFunc: func(g *geziyor.Geziyor, r *client.Response) {
log.Println("Captcha Solved:", string(r.Body))
},
}).Start()
}
Geziyor rất giỏi trong việc xử lý các tác vụ scraping khối lượng lớn, nhưng hiệu suất có thể được tối ưu hóa hơn bằng cách điều chỉnh một số tùy chọn:
ConcurrentRequests để cho phép nhiều yêu cầu song song.Ví dụ với đồng thời và độ trễ:
package main
import (
"github.com/geziyor/geziyor"
"github.com/geziyor/geziyor/client"
)
func main() {
geziyor.NewGeziyor(&geziyor.Options{
StartURLs: []string{"https://example.com"},
ParseFunc: func(g *geziyor.Geziyor, r *client.Response) {},
ConcurrentRequests: 10,
RequestDelay: 2,
}).Start()
}
Nhận Mã thưởng của bạn cho các giải pháp captcha hàng đầu tại CapSolver: scrape. Sau khi đổi mã, bạn sẽ nhận được thêm 5% tiền thưởng sau mỗi lần nạp tiền, không giới hạn số lần.

Geziyor là một khung web scraping mạnh mẽ, nhanh chóng và linh hoạt cho Go, là lựa chọn tuyệt vời cho các nhà phát triển muốn xây dựng hệ thống scraping có khả năng mở rộng. Hỗ trợ tích hợp cho đồng thời, yêu cầu có thể tùy chỉnh và khả năng tích hợp với các dịch vụ bên ngoài như CapSolver làm cho nó trở thành công cụ lý tưởng cho cả tác vụ scraping đơn giản và nâng cao.
Cho dù bạn đang thu thập dữ liệu từ blog, trang web thương mại điện tử hay xây dựng đường ống scraping tùy chỉnh, Geziyor có các tính năng bạn cần để bắt đầu nhanh chóng và hiệu quả.
Khám phá CapSolver, giải pháp hàng đầu không cần lập trình để giải CAPTCHA cho tự động hóa AI vào năm 2026, để tối ưu quy trình làm việc và nâng cao thu thập dữ liệu mà không cần lập trình. Tìm hiểu về các tính năng chính, lợi ích và sử dụng có đạo đức của nó.

Hướng dẫn đầy đủ về cơ sở hạ tầng giải CAPTCHA cung cấp năng lượng cho Trình duyệt Agentic. Học tại sao CAPTCHA là rào cản chính đối với các đại diện AI và cách CapSolver cung cấp giải pháp thiết yếu cho tự động hóa web mượt mà.
